zoukankan      html  css  js  c++  java
  • JQ滑动导航菜单的实现

    前言:不多说直接看效果!!!
    这样的菜单我们在一般的网站上见到的也比较多,有比较好的用户体验!
     
    原理:这个很重要,任何的特效只要原理搞明白了,实现起来都是很容易的!这个特效的原理很简单,菜单的样式我们都很容易实现就是一些CSS而已!
    中间那个滑块其实就是一个定位为:absolute 的元素,每当鼠标放到一个A元素上的时候用JQ获取到当前A元素的位置和宽度,再用JQ的animate方法,以动画的形式给元素即可!
    当然你在这里也可以也一些其它的动画

    1、DOM结构
    <div class="nav-wrapper">
            <div class="container">
                <ul id="nav-list">
                    <li class="nav-item"><a href="http://www.lanrentuku.com/" class="active" target="_blank">网站首页</a></li>
                    <li class="nav-item"><a href="http://www.lanrentuku.com/" target="_blank">网上商城</a></li>
                    <li class="nav-item"><a href="http://www.lanrentuku.com/" target="_blank">智能管家</a></li>
                    <li class="nav-item"><a href="http://www.lanrentuku.com/" target="_blank">技术支持</a></li>
                    <li class="nav-item"><a href="http://www.lanrentuku.com/" target="_blank">应用案例</a></li>
                    <li class="nav-item"><a href="http://www.lanrentuku.com/" target="_blank">关于我们</a></li>
                    <li class="nav-item"><a href="http://www.lanrentuku.com/" target="_blank">懒人图库</a></li>
                </ul>
                <div class="animate-block"></div>
            </div>
        </div>
    

      

    2、对应的CSS
     1 *{margin: 0;padding: 0;}
     2         body{ font-family:"Microsoft YaHei";}
     3         .container {
     4             width: 1200px;
     5             margin: 30px auto;
     6             position: relative;
     7         }
     8         li {
     9             list-style: none;
    10         }
    11         .nav-wrapper {
    12             background-color: #0191d7;
    13             height: 50px;
    14         }
    15         #nav-list {
    16             position: relative;
    17             z-index: 1;
    18         }
    19         #nav-list .nav-item {
    20             float:left;
    21             height: 50px;
    22         }
    23         #nav-list li a{
    24             display: block;
    25             padding: 0 50px;
    26             height: 50px;
    27             font-size: 16px;
    28             line-height: 50px;
    29             color: #fff;
    30             text-decoration: none;
    31         }
    32         .animate-block {
    33             position: absolute;
    34             height: 50px;
    35             background-color: #2B6B8A;
    36             left: 0;
    37             top:0;
    38             z-index: 0;
    39         }
    40         .active {
    41             box-shadow: 0 0 2px rgba(0,0,0,.1);
    42         }
    View Code
    3、JQ代码
    $(function () {
            var $active = $(".active"); //当前选中的菜单
            var $active_w = $active.innerWidth();
            var $active_l = $active.position().left;
            var $animate_block = $(".animate-block");
     
            //设置滑块初始位置
            $(".animate-block").css({$active_w,left:$active_l});
     
            //a事件
            $("#nav-list>li").hover(function () {
                var index = $(this).index();
                var $a_cur = $("#nav-list a").eq(index);//得到当前元素
                var width = $a_cur.innerWidth();
                var left = $a_cur.position().left;
                $(".animate-block").stop().animate({width,left:left});
            },function () {
                $(".animate-block").stop().animate({$active_w,left:$active_l});
            });
        });
    View Code
    参考资料:
  • 相关阅读:
    用户场景分析
    团队项目个人工作总结(4月22日)
    团队项目个人工作总结(4月21日)
    团队项目个人工作总结(4月20日)
    第九周学习进度情况
    站立会议10-个人总结
    站立会议9-个人总结
    站立会议8-个人总结
    textarea中文提交乱码问题解决
    站立会议7-个人总结
  • 原文地址:https://www.cnblogs.com/zxdBlog/p/5936825.html
Copyright © 2011-2022 走看看