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监听扫码枪输入并禁止手动输入的实现方法(推荐)
Mar 21 jQuery
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
Apr 04 jQuery
利用jquery正则表达式在页面验证url网址输入是否正确
Apr 04 jQuery
jQuery滑动到底部加载下一页数据的实例代码
May 22 jQuery
jQuery实现frame之间互通的方法
Jun 26 jQuery
jQuery ajax读取本地json文件的实例
Oct 31 jQuery
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
jQuery实现的淡入淡出与滑入滑出效果示例
Apr 18 jQuery
通过jquery获取上传文件名称、类型和大小的实现代码
Apr 19 jQuery
20个最常见的jQuery面试问题及答案
May 23 jQuery
jquery登录的异步验证操作示例
May 09 jQuery
原生jQuery实现只显示年份下拉框
Dec 24 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
模拟flock实现文件锁定
2007/02/14 PHP
php轻松实现中英文混排字符串截取
2014/05/28 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
php数据访问之查询关键字
2016/05/09 PHP
CodeIgniter生成静态页的方法
2016/05/17 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
window.open()实现post传递参数
2015/03/12 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
python  文件的基本操作 菜中菜功能的实例代码
2019/07/17 Python
Django分页功能的实现代码详解
2019/07/29 Python
浅谈Python __init__.py的作用
2020/10/28 Python
python 制作简单的音乐播放器
2020/11/25 Python
CSS图片翻转动画技术详解(IE也实现了)
2014/04/03 HTML / CSS
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
公司综合部的成员自我评价分享
2013/11/05 职场文书
校园报刊亭的创业计划书
2014/01/02 职场文书
师德标兵事迹材料
2014/12/19 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
2015年国庆节慰问信
2015/03/23 职场文书
2015年班组长工作总结
2015/04/10 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
解读Vue组件注册方式
2021/05/15 Vue.js
浅析NIO系列之TCP
2021/06/15 Java/Android