floatmenu

2017-05-03  本文已影响162人  愿你如夏日清凉的风

最近空一点,利用空余的时间把工作中常用的一些代码整理出来,方便以后在一个统一的地方查找,自己也好总结一下,加深印象,也可以查漏补缺。

floatmenu 主要用来展示前端切的页面,方便后台查看,好套数据,直接看图吧。

floatmenu.jpeg

下面是代码,每增加一个页面,只要加一句下面的代码就可以了。

'<li><a href="name.html">页面名称</a></li>' +

下面是完整的代码,在项目中添加一个floatmenu.js的文件,然后在所有需要展示这个菜单的页面引入这个js文件,像平常引入其他js文件一样引入。
<script src="js/floatmenu.js"></script>

(function (window, document) {
    var styles = '.fe-floatmenu{position: fixed;top:10px;padding:5px;background: #fff;border:1px solid #919191;z-index:100000000;width:150px;}.fe-floatmenu>ul{display: block;}.fe-floatmenu.show{width:200px;padding:2px;}.fe-floatmenu.show>ul{display: block;}.fe-floatmenu.show>a{text-align:center;}.fe-floatmenu a{color:#434343;display: block;height:18px;line-height:18px;}.fe-floatmenu li{border:1px solid #fff;padding:2px 6px;margin-bottom:-1px;background: #f0f0f0;}.fe-floatmenu .close{display:block;position:absolute;right:2px;top:2px;color:#00a1d7;}.fe-floatmenu a:hover{color:#00a1d7;}.fe-floatmenu>ul>li>ul{display: block;padding-left:10px;}.fe-floatmenu>ul>li>ul>li>ul{display: block;padding-left:10px;}.fe-floatmenu>ul>li>ul>li>ul>li>ul{display: none;padding-left:10px;}.fe-floatmenu .hassubmenu>a{position: relative;padding-bottom:3px;}.fe-floatmenu .hassubmenu>a:after{content:"+";position: absolute;right:0;top:0;}.fe-floatmenu .hassubmenu.show>ul{display: block;}.fe-floatmenu .hassubmenu.show>a:after{content:"-";}';

    var html = '<div class="fe-floatmenu">' +
        '<a href="javascript:;">页面导航</a>' + '<a class="close" href="javascript:;">关闭</a>' +
        '<ul>' +
        '<li><a href="fair.html">创交会</a></li>' +
        '<li><a href="consult.html">咨询管理</a></li>' +
        '<li><a href="waiting.html">敬请期待</a></li>' +
        '<li><a href="index.html">首页</a></li>' +
        '<li><a href="all-providers.html">全部服务商</a></li>' +
        '</ul>' +
        '</div>';
    var styleWrap = document.createElement("style");

    styleWrap.innerHTML = styles;
    document.body.appendChild(styleWrap);

    var htmlWrap = document.createElement("div");
    htmlWrap.innerHTML = html;
    document.body.appendChild(htmlWrap);

    var $ = document.querySelectorAll.bind(document);

    Element.prototype.on = Element.prototype.addEventListener;

    NodeList.prototype.on = function (event, fn) {
        [].forEach.call(this, function (el) {
            el.on(event, fn);
        });
        return this;
    };

    var css = function (t, s) {
        s = document.createElement('style');
        s.innerText = t;
        document.body.appendChild(s);
    };
    $(".fe-floatmenu>a").on("click", function (e) {
        $("a.close")[0].style.display = "block";
        $(".fe-floatmenu ul")[0].style.display = "block";
        this.parentNode.classList.add('show');
    });

    $(".fe-floatmenu").on("mouseleave", function (e) {
        // this.classList.remove('show');
    });
    $(".close").on("click", function (e) {
        $("a.close")[0].style.display = "none";
        $(".fe-floatmenu ul")[0].style.display = "none";
        $(".fe-floatmenu")[0].classList.remove('show');
    });
    $(".fe-floatmenu .hassubmenu").on("click", function (e) {
        e.stopPropagation();
        var obj = this.children[1];
        var display = window.getComputedStyle(obj).display;
        if (display == "block") {
            this.classList.toggle('show');
        } else if (display == "none") {
            this.classList.toggle('show');
        }
    });
})(window, document);

上一篇下一篇

猜你喜欢

热点阅读