侧滑导航

前端入坑纪 15

好日子,要双更
成双成对,倍有滋味

提前预祝天下的妈妈们,母亲节快乐!

素素的侧滑

OK,first things first!项目链接

HTML 结构
    <a id="menu" href="javascript:;">menu</a>
    <div id="fixWrp"></div>
    <ul id="navs">
        <li><a href="javascript:;">导航一</a></li>
        <li><a href="javascript:;">导航二</a></li>
        <li><a href="javascript:;">导航三</a></li>
        <li><a href="javascript:;">导航四</a></li>
        <li><a href="javascript:;">导航五</a></li>
        <li><a href="javascript:;">导航六</a></li>
    </ul>

简单的结构,都是必须的元素

CSS 结构
        * {
            margin: 0;
            padding: 0
        }
        
        a {
            color: #333;
            text-decoration: none;
        }
        
        html,
        body {
            font-family: Verdana, Geneva, Tahoma, sans-serif, "Microsoft YaHei";
            height: 100%;
            background: #fefefe;
            text-align: center;
        }
        
        #menu {
            display: block;
            color: #fff;
            background-color: skyblue;
            border-radius: 3px;
            width: 60px;
            height: 36px;
            line-height: 36px;
            font-size: 13px;
            text-transform: uppercase;
            margin-left: 1.2rem;
            margin-top: 1rem;
            z-index: 3
        }
        
        body {
            overflow: hidden
        }
        
        #navs {
            width: 37%;
            font-size: 14px;
            line-height: 40px;
            background-color: #f1f1f1;
            position: fixed;
            left: 0;
            top: 0;
            bottom: 0;
            transform: translateX(-100%);
            overflow: scroll-y;
            z-index: 9;
            /*过渡的效果css*/
            transition: all 200ms ease-in;
        }
        
        #fixWrp {
            position: fixed;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            background-color: rgba(0, 150, 205, .3);
            z-index: 6;
            display: none;
        }
        
        #navs a {
            display: block;
        }

navs和fixWrp都是fixed定位的,并且#navs的z-index比fixWrp大

JS 结构
       var menu = document.getElementById("menu"),
            navs = document.getElementById("navs"),
            fixWrp = document.getElementById("fixWrp"),
            navLias = navs.getElementsByTagName("a");
        // 首先menu设置个自定义属性,来区别侧滑导航的不同状态
        navs.setAttribute("trigerSte", "off");
        // 侧滑导航关闭时,要做的操作
        function clsNav() {
            navs.style.transform = "translateX(-100%)";
            navs.setAttribute("trigerSte", "off");
            fixWrp.style.display = "none"

        }
        // 侧滑导航打开时,要做的操作
        function opeNav() {
            if (navs.getAttribute("trigerSte") == "off") {
                navs.style.transform = "translateX(0)";
                navs.setAttribute("trigerSte", "on");
                fixWrp.style.display = "block"
            }
        }
        // 点击menu时,打开侧滑导航
        menu.onclick = opeNav;
        // 点击底下的蓝底(fixWrp)时,关闭侧滑导航
        fixWrp.onclick = clsNav;
        // 点击ul里的每个a时,关闭侧滑导航
        for (var i = 0; i < navLias.length; i++) {
            navLias[i].onclick = clsNav;
        }

注解已经添加,感兴趣的,可以好好研究下,这个效果很简单的,不难

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,687评论 1 92
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 5,019评论 0 1
  • 练练自己的脑子这里有编程中常见的数学问题 http://blog.csdn.net/a809146548/arti...
    pw007992阅读 2,299评论 0 0
  • 我想讲个故事,有点长,不知道你是不是愿意听呢。 在所有的年代里,我最爱民国,是的,我爱它,在那样的乱世里,每个...
    深蓝浮白阅读 5,494评论 0 0
  • 这段时间,对我来说真的是一种煎熬。没想到时间越长久,对你的思念确是越来越深,我知道如果自己再这样下去,这辈子就真的...
    公子郝阅读 2,985评论 0 0

友情链接更多精彩内容