Heim  >  Artikel  >  Web-Frontend  >  CSS3模拟侧滑菜单_html/css_WEB-ITnose

CSS3模拟侧滑菜单_html/css_WEB-ITnose

WBOY
WBOYOriginal
2016-06-24 11:44:291550Durchsuche

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

用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;                }            }        }

效果:demo

原文:CSS3模拟侧滑菜单

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn