移动端左侧导航栏做法

移动端左侧导航栏效果如何做

大概思路就是设导航栏盒子为固定定位 fixed,初始宽度设为0,点击打开按钮调用函数设置宽度为有效值

具体步骤下面代码有解释

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=no">
    <title>移动端左侧导航栏</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }
        
        .nav {
            width: 100%;
            height: 50px;
            padding: 0 20px;
            background-color: #000;
            line-height: 50px;
        }
        
        .side-nav {
            position: fixed;
            overflow-x: hidden;  /*水平方向溢出隐藏*/
            z-index: 9;  /*堆叠顺序,让导航栏在最前面显示*/
            top: 0;
            left: 0;  /*改成 right=0 即右侧打开*/
            height: 100%;
            width: 0; /*初始隐藏,即宽度为0*/
            padding-top: 60px;
            background-color: #000;
            transition: 0.5s;  /*动画过渡时间,这里只是最简单的用法*/
        }
        
        .container {
            position: absolute;
            width: 100%;
            height: 100%;
            background-color: #fff;
        }
    </style>
</head>

<body>
    <div class="nav">
        <button onclick="openNav()">打开</button>
    </div>
    <div class="side-nav" id="side-nav"></div>
    <div class="container" onclick="closeNav()"></div>
    <script>
        // 设置侧栏宽度并让外面大盒子关闭的事件使用捕获传递
        function openNav() {
            document.getElementById("side-nav").style.width = "50%";
        }
        // 使侧栏宽度为0,即关闭
        function closeNav() {
            document.getElementById("side-nav").style.width = "0";
        }
    </script>
</body>

</html>

下面是演示

点击跳转

评论区
头像
文章目录