Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

肖康 / H5_2.0

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Settings
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Find file
BlameHistoryPermalink
Switch branch/tag
  • H5_2.0
  • node_modules
  • _uni-simple-router@1.5.5@uni-simple-r...
  • component
  • h5-dom.js
  • 肖康's avatar
    first init · ddbafbda
    肖康 committed 2 years ago
    ddbafbda
h5-dom.js 2.46 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
const render = function (node) {
    if (typeof node == 'string') { // 是一个文本节点
        return document.createTextNode(node);
    }
    if (node instanceof HTMLElement) {
        return node;
    }
    // eslint-disable-next-line
    return createElement(node);
};
/**
 * 根据标签及属性创建一个dom
 */
const createElement = function ({
    tag,
    attrs,
    children,
} = {}) {
    const $el = document.createElement(tag);
    // eslint-disable-next-line
    for (const [k, v] of Object.entries(attrs)) {
        $el.setAttribute(k, v);
    }
    // eslint-disable-next-line
    for (const item of children) {
        $el.appendChild(render(item));
    }
    return $el;
};

const html = createElement({
    tag: 'div',
    attrs: {
        id: 'router-loadding',
    },
    children: [
        createElement({
            tag: 'div',
            attrs: {
                class: 'loadding',
            },
            children: [],
        }),
    ],
});
/* eslint-disable */
const style = createElement({
    tag: 'style',
    attrs: {
        id: 'HHYANG_style',
    },
    children: [
        `
		body{padding:0;margin:0}#router-loadding{position:fixed;width:100%;height:3px;transition:all .05s;top:0;z-index:9999999999999999;}#router-loadding .loadding{position:fixed;top:0;height:3px;background-color:#47b14b;width:0;box-shadow:0 0 15px #4CAF50;transition:all .8s;border-top-right-radius:3px;border-bottom-right-radius:3px}
		`,
    ],
});

const script = createElement({
    tag: 'script',
    attrs: {
        id: 'HHYANG_script',
    },
    children: [
        `
		var HHYANG_El=document.querySelector("#router-loadding .loadding"),HHYANG_Pel=document.querySelector("#router-loadding"),w=0,stop=null,WH=window.innerWidth,loop=function(){w=w>=WH-35?w+parseInt(5*Math.random()):w+parseInt(35*Math.random());HHYANG_El.style.cssText="width:"+w+"px";w>=WH&&clearInterval(stop)};window.startLodding=function(a){a=void 0===a?500:a;HHYANG_Pel.style.cssText="display: block;";HHYANG_El.style.cssText="transition: all 0.8s;";w=0;clearInterval(stop);stop=setInterval(function(){loop()},a)};window.stopLodding=function(a){a=void 0===a?200:a;clearInterval(stop);HHYANG_El.style.cssText="width:"+WH+"px;transition: all "+a/1E3+"s;";HHYANG_Pel.style.cssText="opacity: 0;transition: all "+a/1E3+"s;";setTimeout(function(){HHYANG_Pel.style.cssText="display: none;";HHYANG_El.style.cssText="width:0px";w=0},a)};
		`,
    ],
});
export const DOM = {
    style,
    html,
    script,
};
/* eslint-enable */