jquery+css3实现熊猫tv导航代码分享

jquery+css3实现熊猫tv导航代码分享

实现原理

请看以下源代码

<div class=\"ph-nav\" data-pdt-block=\"pheader-n\">
      <div class=\"ph-nav_shadow\" style=\"left: 0px; width: 62px;\"></div>
      <ul>
        <li class=\"ph-nav_item ph-nav_item--current\">
          <a href=\"/\" rel=\"external nofollow\" >
          首页
          
          </a>
        </li>
        <li class=\"ph-nav_item\">
          <a href=\"/all\" rel=\"external nofollow\" >
          全部
          </a>
        </li>
        ...
      </ul>
</div>

绿色的框对应的代码是class为ph-nav_shadow的div。

通过jquery来改变遮罩层(.ph-nav_shadow)的left与width值,css3加上动画效果实现绿色框的动画。

通话jquery对li标签类的添加与删除实现文字颜色的变化。(.ph-nav_item–current)。

具体实现

编写html代码

 <header>
    <div class=\"w\">
      <div class=\"header_logo l\"><img src=\"img/logo.png\" alt=\"\"></div>
      <div class=\"header_nav r\">
         <div class=\"header_nav_shadow\"></div>
         <ul>
           <li class=\"header_nav_li-hover\"><a href=\"\">首页</a></li>
           <li><a href=\"\">智能家居</a></li>
           <li><a href=\"\">案例展示</a></li>
           <li><a href=\"\">致创能源</a></li>
           <li><a href=\"\">答疑解惑</a></li>
           <li><a href=\"\">合作加盟</a></li>    
        </ul>
      </div>
    </div> 
  </header>

编写css代码

.header_nav{
  width: 592px;
  height: 50px;
  position: relative;
}
.header_nav_shadow{
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 72px;
  background: #F29400;
  transition: all ease-in-out .3s;
  z-index: 1;
}
.header_nav ul li{
  display: block;
  float: left;
  overflow: hidden;
  height: 50px;
  line-height: 50px;
  transition: all ease-in-out .3s;
  position: relative;
  z-index: 2;
}
.header_nav_li-hover a{
  color: #fff;
}
.header_nav ul li a{
  display: block;
  padding: 0 20px;
  height: 50px;
  line-height: 50px;
  transition: all ease-in-out .3s;
}

编写js代码(主要)

$(document).ready(function() { 
  $(\".header_nav ul li\").hover(function() { 

    var change = getLiData($(this));
    $(\".header_nav_shadow\").css(\'left\',change[0]).width(change[1]);
    $(\".header_nav ul\").children(\"li:first-child\").removeClass(\"header_nav_li-hover\"); 
    $(this).addClass(\"header_nav_li-hover\"); 
  }, function() { 
    $(\".header_nav_shadow\").css(\'left\',0).width(\'72\');
    $(this).removeClass(\"header_nav_li-hover\"); 
    $(\".header_nav ul\").children(\"li:first-child\").addClass(\"header_nav_li-hover\");
  }); 
});
// 根据this li 获取需要改变的长度和偏移量
function getLiData(li){
  var left = 0;
  for(let i=0;i<li.index();i++){
    left+=$(\".header_nav ul li:eq(\"+i+\")\").width();
  }
  var change=[left,li.width()];
  return change;
}

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容