百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>CSS教程> 纯CSS3模拟侧滑菜单效果代码
分享文章到:

纯CSS3模拟侧滑菜单效果代码

发布时间:01/15 来源: 浏览: 关键词:
CSS3强大之处就在于很多的一些动态效果不需要js或jquery就可以直接实现了,下文为各位介绍一下纯CSS3模拟侧滑菜单效果代码,有兴趣的和小编来看看。

在APP应用上,常见的一种导航方式是侧滑导航,效果类似于这样:

nav-slide

用CSS3可以对其进行模拟,代码如下:

HTML:

<nav>
        <div id="toggleMenu">
            <span id="hide"></span>
            <span id="show"></span>
        </div>
        <ul id="list">
            <li>
                <a href="#">首页</a>
            </li>
            <li>
                <a href="#">问题</a>
            </li>
            <li>
                <a href="#">文章</a>
            </li>
            <li>
                <a href="#">关注</a>
            </li>
            <li>
                <a href="#">发现</a>
            </li>
        </ul>
    </nav>

CSS代码如下:

nav{
            width: 100%;
            height: 50px;
            background-color: rgba(26,188, 156, 0.75);
            position: relative;
        }
        div{
            position: absolute;
            height: 100%;
            width: 50px;
            left: 20px;
            cursor: pointer;
            -webkit-transition: transform 1s;
            -moz-transition: transform 1s;
            -ms-transition: transform 1s;
            -o-transition: transform 1s;
            transition: transform 1s;
        }
        #hide,#show{
            display: block;
            height: 3px;
            background-color: #FFF;
            position: absolute;
            top: 50%;
            -webkit-transition: opacity .5s;
            -moz-transition: opacity .5s;
            -ms-transition: opacity .5s;
            -o-transition: opacity .5s;
            transition: opacity .5s;
        }
        #show{
            width: 20px;
            left: 15px;
            opacity: 0;
        }
        #hide{
            width: 30px;
            left: 10px;
            margin-top: -1.5px;
        }
        #hide::before,#hide::after,#show::before,#show::after{
            content: "";
            display: block;
            height: 3px;
            background-color: #FFF;
            position: absolute;
        }
        #hide::before,#hide::after{
            width: 30px;
        }
        #show::before,#show::after{
            width: 25px;
        }
        #hide::before,#show::before{
            top: -10px;
        }
        #hide::after,#show::after{
            top: 10px;
        }
        #show::before{
             -webkit-transform: rotate(35deg) translateX(5px);
             -moz-transform: rotate(35deg) translateX(5px);
             -ms-transform: rotate(35deg) translateX(5px);
             -o-transform: rotate(35deg) translateX(5px);
             transform: rotate(35deg) translateX(5px);
        }
        #show::after{
              -webkit-transform: rotate(-35deg) translateX(5px);
             -moz-transform: rotate(-35deg) translateX(5px);
             -ms-transform: rotate(-35deg) translateX(5px);
             -o-transform: rotate(-35deg) translateX(5px);
             transform: rotate(-35deg) translateX(5px);
        }
        ul{
            list-style: none;
            background-color: #455552;
            position: absolute;
            top: 34px;
            left: -200px;
            width: 74px;
            -webkit-transition: all .5s ease-in-out;
            -moz-transition: all .5s ease-in-out;
            -ms-transition: all .5s ease-in-out;
            -o-transition: all .5s ease-in-out;
            transition: all .5s ease-in-out;
        }
        li{
            margin: 0;
            padding: 0;
            position: relative;
            left: -40px;
            text-align: center;
            width: 112px;
        }
        a{
            text-decoration: none;
            color:#FFF;
            display: inline-block;
            height: 40px;
            line-height: 40px;
        }
        li:hover{
            background-color: rgba(26,188, 156, 0.75);
        }
JavaScript控制一下事件:

var toggle = document.getElementById("toggleMenu");
        var list = document.getElementById("list");
        var hide = document.getElementById("hide");
        var show = document.getElementById("show");
        var isHidden = true;
        window.onload = function() {
            toggle.onclick=function(){
                if(isHidden){
                    list.style.left="0px";
                    isHidden = false;
                    hide.style.opacity=0;
                    this.style.mozTransform = "rotate(180deg)";
                    this.style.msTransform = "rotate(180deg)";
                    this.style.oTransform = "rotate(180deg)";
                    this.style.webkitTransform = "rotate(180deg)";
                    this.style.transform = "rotate(180deg)";
                    show.style.opacity=1;
                }else{
                    list.style.left="-200px";
                    isHidden = true;
                    hide.style.opacity=1;
                    this.style.mozTransform = "rotate(0deg)";
                    this.style.msTransform = "rotate(0deg)";
                    this.style.oTransform = "rotate(0deg)";
                    this.style.webkitTransform = "rotate(0deg)";
                    this.style.transform = "rotate(0deg)";
                    show.style.opacity=0;
                }
            }
        }

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有20人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板