jquery 实现左侧菜单栏左右收缩

随着网站的功能越来越复杂,左侧菜单栏已经成为了几乎所有网页的标配。然而,一些设计师可能会认为菜单栏占据了网页过多的空间,降低了网页的美观性。为了解决这个问题,可以使用jQuery实现菜单栏的左右收缩功能。

本文将介绍如何利用jQuery实现左侧菜单栏左右收缩效果。

  • HTML结构
  • 首先,我们需要构建一个基本的HTML结构。代码如下:

    <
    div class="
    menu"
    >

    <
    div class="
    menu-toggle"
    >

    <
    i class="
    fa fa-bars"
    >
    <
    /i>

    <
    /div>

    <
    ul class="
    menu-list"
    >

    <
    li>
    <
    a href="
    #"
    >
    Menu 1<
    /a>
    <
    /li>

    <
    li>
    <
    a href="
    #"
    >
    Menu 2<
    /a>
    <
    /li>

    <
    li>
    <
    a href="
    #"
    >
    Menu 3<
    /a>
    <
    /li>

    <
    /ul>

    <
    /div>

    JQuery让你的网站菜单变得更加动态!

    这里我们创建了一个名为“menu”的div容器,里面包含了“menu-toggle”和“menu-list”两个子元素。

  • CSS样式
  • 接下来,我们需要为菜单栏添加CSS样式。代码如下:

    .menu {
    width: 250px;

    height: 100%;

    position: fixed;

    top: 0;

    left: 0;

    background-color: #333;

    color: #fff;

    overflow-x: hidden;

    }

    .menu-toggle {
    width: 50px;

    height: 50px;

    line-height: 50px;

    font-size: 24px;

    text-align: center;

    cursor: pointer;

    position: absolute;

    top: 0;

    left: 0;

    background-color: #555;

    color: #fff;

    z-index: 999;

    }

    .menu-list {
    margin-top: 50px;

    padding: 0;

    list-style: none;

    }

    .menu-list li {
    padding: 10px;

    }

    .menu-list li a {
    color: #fff;

    text-decoration: none;

    }

    /* 隐藏滚动条 */
    ::-webkit-scrollbar {
    display: none;

    }

    在这个CSS样式中,我们设置了菜单栏的宽度和高度,以及绝对定位的位置。然后为菜单栏的子元素添加样式,包括菜单栏的切换按钮、菜单栏列表等。

  • JS代码
  • 现在,我们需要通过jQuery来添加菜单栏的左右收缩效果。代码如下:

    $(document).ready(function() {
    // 默认情况下,菜单栏打开
    var menuState = "
    open"
    ;


    // 点击按钮时切换菜单栏状态
    $("
    .menu-toggle"
    ).click(function() {
    if (menuState == "
    open"
    ) {
    $("
    .menu"
    ).animate({left: "
    -250px"
    }, 300);

    menuState = "
    closed"
    ;

    } else {
    $("
    .menu"
    ).animate({left: "
    0px"
    }, 300);

    menuState = "
    open"
    ;

    }
    });

    });

    在这个JS代码中,我们定义了一个变量“menuState”,用于跟踪菜单栏的状态。每次点击菜单栏的切换按钮时,判断菜单栏的状态,然后根据不同状态进行切换。

  • 完整示例
  • 现在,我们已经完成了一个简单的左侧菜单栏左右收缩效果。我们将上述HTML、CSS和JS代码整合在一起,形成完整的示例。

    <
    !doctype html>

    <
    html>

    <
    head>

    <
    meta charset="
    UTF-8"
    >

    <
    title>
    jQuery实现左侧菜单栏左右收缩<
    /title>

    <
    link rel="
    stylesheet"
    href="
    https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css"
    >

    <
    style>

    .menu {
    width: 250px;

    height: 100%;

    position: fixed;

    top: 0;

    left: 0;

    background-color: #333;

    color: #fff;

    overflow-x: hidden;

    }
    .menu-toggle {
    width: 50px;

    height: 50px;

    line-height: 50px;

    font-size: 24px;

    text-align: center;

    cursor: pointer;

    position: absolute;

    top: 0;

    left: 0;

    background-color: #555;

    color: #fff;

    z-index: 999;

    }
    .menu-list {
    margin-top: 50px;

    padding: 0;

    list-style: none;

    }
    .menu-list li {
    padding: 10px;

    }
    .menu-list li a {
    color: #fff;

    text-decoration: none;

    }
    /*隐藏滚动条*/
    ::-webkit-scrollbar {
    display: none;

    }
    <
    /style>

    <
    /head>

    <
    body>

    <
    div class="
    menu"
    >

    <
    div class="
    menu-toggle"
    >

    <
    i class="
    fa fa-bars"
    >
    <
    /i>

    <
    /div>

    <
    ul class="
    menu-list"
    >

    <
    li>
    <
    a href="
    #"
    >
    Menu 1<
    /a>
    <
    /li>

    <
    li>
    <
    a href="
    #"
    >
    Menu 2<
    /a>
    <
    /li>

    <
    li>
    <
    a href="
    #"
    >
    Menu 3<
    /a>
    <
    /li>

    <
    /ul>

    <
    /div>


    <
    script src="
    https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"
    >
    <
    /script>

    <
    script>

    $(document).ready(function() {
    // 默认情况下,菜单栏打开
    var menuState = "
    open"
    ;


    // 点击按钮时切换菜单栏状态
    $("
    .menu-toggle"
    ).click(function() {
    if (menuState == "
    open"
    ) {
    $("
    .menu"
    ).animate({left: "
    -250px"
    }, 300);

    menuState = "
    closed"
    ;

    } else {
    $("
    .menu"
    ).animate({left: "
    0px"
    }, 300);

    menuState = "
    open"
    ;

    }
    });

    });

    <
    /script>

    <
    /body>

    <
    /html>
  • 总结


  • JQuery,这个强大的JavaScript库不仅可以控制网页中的HTML元素,也能够使网页更具交互性。下面,我们将介绍如何使用JQuery实现左侧菜单栏左右收缩,使你的网页更加动态吸引人。
    1. 包含CSS代码:获取最佳显示效果
    在代码起始行中,插入需要使用的CSS代码,如下所示:
    html,body{
    height:100%;
    width:100%;
    margin:0;
    padding:0;
    }
    2. HTML代码布局:使其更具交互性
    需要创建一个HTML文件并包含以下代码,以确保具有良好的交互性。



    此处为主要内容,
    可填充其他HTML元素


    3. jQuery代码设置:使菜单左右收缩
    jQuery的代码作为功能JS库,可以控制HTML元素,也可以实现左右的滑动效果。以下JQuery代码控制左右滑动:
    $(document).ready(function(){
    $('.toggle-btn').click(function(){
    $('.sidebar').toggleClass('active');
    $('.main-content').toggleClass('active');
    });
    });
    4. CSS代码设置:完善效果
    完成以上JQuery代码,此时左侧菜单可左右滑动,但还需要完善CSS样式,以确保具有更佳的交互效果。
    .wrapper{
    display:flex;
    height:100%;
    }
    .sidebar{
    width:240px;
    height:100%;
    position:fixed;
    top:0;
    left:0;
    z-index:1;
    transition:0.5s;
    }
    .sidebar ul{
    padding:0;
    margin:0;
    list-style:none;
    }
    .sidebar ul li{
    padding:15px;
    font-size:20px;
    }
    .toggle-btn{
    position:absolute;
    top:10px;
    right:40px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    width:40px;
    height:30px;
    }
    .toggle-btn span{
    height:3px;
    width:100%;
    background-color:grey;
    margin-bottom:7px;
    transition:0.5s;
    }
    .main-content{
    margin-left:240px;
    height:100%;
    transition:0.5s;
    }
    .sidebar.active{
    width:50px;
    }
    .sidebar.active ul li{
    text-align:center;
    }
    .sidebar.active .toggle-btn span{
    margin:0;
    height:1px;
    }
    5. 总结
    这就是JQuery实现左侧菜单栏左右收缩的方法。通过使用JQuery和HTML、CSS的组合,不仅能够动态地展现你的网页,还能为用户提供更好的体验。如果你想让你的网站更加吸引人,使用JQuery是一个非常好的选择!