移动端右侧栏导航面板

效果图 

 

在移动前端开发中,这应该也是很常见的功能。如果是原生安卓或者ios,可能有现成的控件,当然实现这个效果的js插件也有很多。那么原生自己现实一个呢?

整理思路:跟原生实现弹框很像,先有一个遮罩层,遮罩层上面是右侧导航栏,首先右侧导航栏right: -800px,再用css3 transition过渡动画慢慢平移到平面内(当然这只是其中一个效果),最后就是点击空白处关闭侧导航。

 

css

复制代码
    .nav-right-mask {
            width: 100%;
            height: 100%;
            position: fixed;
            top: 0;
            left: 0;
            z-index: 999;
            background-color: rgba(0,0,0,.7);
        }
        .nav-right-content {
            position: absolute;
            top: 0;
            right: -800px;
            height: 100%;
            width: 50%;
            background-color: white;
            text-align: center;
            list-style: none;
            -webkit-transition: .8s;
            -moz-transition: .8s;
            transition: .8s;
            background-color: #040a09;
        }

        .nav-right-content>li:nth-child(1) {
            height: 10%;
        }
        .nav-right-content>li:not(:nth-child(1)) {
            line-height: 2.8em;
            border-bottom: 1px solid #CCC;
        }
        .nav-right-content>li {
            color: black;
            text-align: left;
            padding-left: 1.8em;
        }
        .nav-right-content>li>a {
            color: white;
        }
        .nav-right-content>li>a>strong {
            margin-left: 1.26rem;
            font-size: 1.96rem;
        }
        .nav-right-content>li:nth-last-child(1) {
            position: absolute;
            bottom: 10%;
            color: white;
        }
        .nav-right-content>li>img {
            width: 80%;
        }
复制代码

 

html

复制代码
      <section class="nav-right-mask li-hide">
                <ul class="nav-right-content">
                    <li></li>
                    <li>
                        <a class="li-text-none" href="http://github.com/helijun">
                            <i class="icon-github right-nav-icon"></i>
                            <strong>Github</strong>
                        </a>
                    </li>
                    <li>
                        <img id="myWechatQr" src="/dist/img/common/my-wechat-qr.jpg">
                        <h4>扫一扫,联系我</h4>
                    </li>
                </ul>
            </section>
复制代码

 

js

 

复制代码
           $('.menu').on('click',function(event){
                        $('.nav-right-mask').show();
                            setTimeout(function(){
                                $('.nav-right-content').css({right:'0'}).off().on('click',function(event){
                                    event.stopPropagation();
                                });
                            },100)
                            
                            event.stopPropagation();
                            event.preventDefault();
                    })
                    $('.nav-right-mask:not(.nav-right-content)').on('click',function(event){
                        $('.nav-right-mask').hide();
                            setTimeout(function(){
                                $('.nav-right-content').css({right:'-800px'});
                            },100)

                            event.stopPropagation();
                            event.preventDefault();
                    })
复制代码

比较简单,没有太多的解释。留着这份代码,方便后面回顾。

 

posted @   微人类  阅读(2492)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示