下划线跟随导航

原创 2019-02-14 16:49:52 405
摘要:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="/static/jQuery/jquery-3.3.1.min.js"></scr
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="/static/jQuery/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" type="text/css" href="/static/csss/font-awesome-4.7.0/font-awesome-4.7.0/css/font-awesome.min.css">
  <style>
    *{margin: 0; padding: 0;}                       /*内外边距清零*/
    .nav_top{
             width:1200px;                          /*最底层导航栏CSS样式*/
             height: 50px;
             background:blue;
             border-radius: 10px;
             box-shadow: 0px 6px 30px #ccc  inset;
             margin:0px auto;
             position: relative;
    }
    li{                          /*清除所有li的圆点*/
             list-style:none;
    }
    .nav_1>li{
             float: left;         /*设置第一级li的样式*/
             height: 45px;
             width:150px;
             line-height: 50px;
             text-align: center;
             font-size: 18px;
             color: ghostwhite;
    }
    .nav_2 li{
             width: 150px;        /*设置第二级往后所有li的样式*/
             height:50px;
             background:lightpink;
             color:black;
             position: relative;
    }
    .nav_3,.nav_4{                 /*第三、第四级绝对定位位置*/
             position:absolute;left: 150px; top:0px;
    }
    #foot{                        /*跟随下划线CSS样式*/
             width:150px;
             height: 5px;
             background:gold;
             position: absolute; top:47px;
    }
  </style>
<title>四级导航下拉导航</title>
</head>
<body>
  <script>
    $(function(){                                //就绪函数简写
             $('#foot').hide()                   //隐藏跟随下划线
             $('.nav_1>li').mousemove(function(){ //第一级li移上触发事件
                 $('#foot').show(function(){      //显示跟随导航条
                     $('.nav_1>li').hover(        //点击第一级li触发切换
                         function(){              //第一事件函数
                           //parseInt取整数,attr('name')获得当前元素的name属性值 所以每个li增加了name值从0开始递增 
                            $x=parseInt($(this).attr('name'))*150    //赋值给变量x
                           //stop()先停止(不然每次从0位置开始移动,设置后就可以从当前位置右移)
                            $('#foot').stop().animate({left:$x+'px'},300) //获得当前跟随下划线,自定义动画变量数值+PX
                         },
                         function(){              //第二事件触发函数
                            $('#foot').stop().animate({left:'hide'},200) //移出时 自定义动画右移隐藏
                         }
                     )
                 })
             })   
    })

    $(document).ready(function(){
       ('.nav').css({'width':'100%','height':'50px','background':'rgb(209, 219, 223)',}) //导航背景色
       //隐藏二级 三级  四级 
       $('.nav_2,.nav_3,.nav_4').hide()
       
       //点击1级显示2级
       $('.nav_b').mousemove(function(){
            $(this).find('.nav_2').show()
        })
       //鼠标移开不显示2级
       $('.nav_b').mouseleave(function(){
            $(this).find('.nav_2').hide()
       })
       
       //点击2级显示3级
       $('.nav_c').mousemove(function(){
            $(this).find('.nav_3').show()
       })
       //鼠标移开不显示3级
       $('.nav_c').mouseleave(function(){
            $(this).find('.nav_3').hide()
       })
       //点击3显示4级
       $('.nav_d').mousemove(function(){
            $(this).find('.nav_4').show()
       })
       //鼠标移开不显示4级
       $('.nav_d').mouseleave(function(){
            $(this).find('.nav_4').hide()
       })

    })
  </script>
       <div class="nav">
          <div class="nav_top">
             <div id='foot'></div>
                 <ul class="nav_1">
                     <li class="nav_b"name="0">首页 <i class="fa fa-caret-down"></i>
                         <ul class="nav_2">
                              <li class="nav_c">会员中心
                                  <ul class="nav_3">
                                       <li class="nav_d">我的推荐
                                            <ul class="nav_4">
                                                 <li>一级会员</li>
                                                 <li>二级会员</li>
                                                 <li>三级会员</li>
                                            </ul>
                                       </li>
                                       <li >我的收入</li>
                                       <li>我的余额</li>
                                  </ul>
                              </li>
                              <li>分销中心</li>
                              <li>我的订单</li>
                         </ul>
                     </li>
                     <li class="nav_b" name="1">美容护肤
                         <ul class="nav_2">
                              <li>面膜</li>
                              <li class="nav_c">精华液
                                  <ul class="nav_3">
                                       <li>牡丹精华</li>
                                       <li class="nav_d">红石榴
                                            <ul class="nav_4">
                                                 <li>抗氧化</li>
                                                 <li>精华</li>
                                                 <li>原液</li>
                                            </ul>
                                       </li>
                                       <li>玻尿酸</li>
                                  </ul>
                              </li>
                              <li>面霜</li>
                         </ul>
                     </li>
                     <li name="2">彩妆香水</li>
                     <li name="3">日用洗护</li>
                     <li name="4">超值特价</li>
                     <li name="5">海外精品</li>
                 </ul>
          </div>
       </div>
</body>
</html>


批改老师:天蓬老师批改时间:2019-02-14 17:26:37
老师总结:这类特效, 大多是通过一些事件方法来实现, 在方法中可以对页面元素进行,进行一些动态的设置,达到动画的效果

发布手记

热门词条