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


Posted in jQuery onFebruary 12, 2018

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;
}
jQuery 相关文章推荐
jQuery树插件zTree使用方法详解
May 02 jQuery
jQuery zTree树插件动态加载实例代码
May 11 jQuery
jQuery常见面试题之DOM操作详析
Jul 05 jQuery
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 jQuery
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
jQuery插件artDialog.js使用与关闭方法示例
Oct 09 jQuery
jQuery实现切换隐藏与显示同时切换图标功能
Oct 29 jQuery
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
jquery实现动态创建form并提交的方法示例
May 27 jQuery
JQuery获得内容和属性方法解析
May 30 jQuery
jquery实现有过渡效果的tab切换
Jul 17 jQuery
jQuery+ajax实现用户登录验证
Sep 13 jQuery
jQuery实现定时隐藏对话框的方法分析
Feb 12 #jQuery
JS/jQuery实现DIV延时几秒后消失或显示的方法
Feb 12 #jQuery
集成vue到jquery/bootstrap项目的方法
Feb 10 #jQuery
jQuery实现的简单图片轮播效果完整示例
Feb 08 #jQuery
jQuery 防止相同的事件快速重复触发方法
Feb 08 #jQuery
jQuery实现动态显示select下拉列表数据的方法
Feb 05 #jQuery
jQuery Dom元素操作技巧
Feb 04 #jQuery
You might like
php分页思路以及在ZF中的使用
2012/05/30 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
JS Array对象入门分析
2008/10/30 Javascript
事件绑定之小测试  onclick &amp;&amp; addEventListener
2011/07/31 Javascript
用JQuery在网页中实现分隔条功能的代码
2012/08/09 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
解析使用js判断只能输入数字、字母等验证的方法(总结)
2013/05/14 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战二)
2013/08/21 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
JS控制表单提交的方法
2015/07/09 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
[53:50]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python中类的继承代码实例
2014/10/28 Python
基于python实现的抓取腾讯视频所有电影的爬虫
2016/04/22 Python
总结python实现父类调用两种方法的不同
2017/01/15 Python
解决Python字典写入文件出行首行有空格的问题
2017/09/27 Python
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
Pytest单元测试框架如何实现参数化
2020/09/05 Python
详解HTML5常用的语义化标签
2019/09/27 HTML / CSS
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
2015年毕业生自我鉴定模板
2014/09/19 职场文书
工作证明英文模板
2014/10/21 职场文书
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python