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 相关文章推荐
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
jQuery导航条固定定位效果实例代码
May 26 jQuery
Angular2使用jQuery的方法教程
May 28 jQuery
JS+jQuery实现注册信息的验证功能
Sep 26 jQuery
jQuery实现的鼠标滚轮控制图片缩放功能实例
Oct 14 jQuery
[原创]jquery判断元素内容是否为空的方法
May 04 jQuery
jQuery插件jsonview展示json数据
May 26 jQuery
jQuery解析json格式数据示例
Sep 01 jQuery
使用异步controller与jQuery实现卷帘式分页
Jun 18 jQuery
使用jQuery实现购物车
Oct 29 jQuery
jQuery实现容器间的元素拖拽功能
Dec 01 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
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
JavaScript 学习点滴记录
2009/04/24 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
js操作checkbox遇到的问题解决
2013/06/29 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
详解AngularJS2 Http服务
2017/06/26 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
vue使用element-ui实现表单验证
2020/12/13 Vue.js
python计算对角线有理函数插值的方法
2015/05/07 Python
在Python中marshal对象序列化的相关知识
2015/07/01 Python
python文件的md5加密方法
2016/04/06 Python
python模块之paramiko实例代码
2018/01/31 Python
Python即时网络爬虫项目启动说明详解
2018/02/23 Python
在python中实现对list求和及求积
2018/11/14 Python
Django中间件基础用法详解
2019/07/18 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
纯CSS实现菜单、导航栏的3D翻转动画效果
2014/04/23 HTML / CSS
房屋租赁意向书
2014/04/01 职场文书
煤矿安全生产责任书
2014/04/15 职场文书
财务负责人岗位职责
2015/02/03 职场文书
公司行政管理制度范本
2015/08/05 职场文书