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实现瀑布流页面
Apr 11 jQuery
jQuery ajax请求struts action实现异步刷新
Apr 19 jQuery
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
May 05 jQuery
jquery.masonry瀑布流效果
May 25 jQuery
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 jQuery
Vue+jquery实现表格指定列的文字收缩的示例代码
Jan 09 jQuery
jQuery+ajax实现动态添加表格tr td功能示例
Apr 23 jQuery
通过jQuery学习js类型判断的技巧
May 27 jQuery
深入分析jQuery.one() 函数
Jun 03 jQuery
jQuery实现简单弹幕制作
Dec 10 jQuery
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 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 array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
php中通过正则表达式下载内容中的远程图片的函数代码
2012/01/10 PHP
ajax php传递和接收变量实现思路及代码
2012/12/19 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
Laravel框架Blade模板简介及模板继承用法分析
2019/12/03 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
tab栏切换原理
2017/03/22 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
基于vue+uniapp直播项目实现uni-app仿抖音/陌陌直播室功能
2019/11/12 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
Python实现远程调用MetaSploit的方法
2014/08/22 Python
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
pandas 按照特定顺序输出的实现代码
2018/07/10 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
PIL包中Image模块的convert()函数的具体使用
2020/02/26 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
啤酒节策划方案
2014/05/28 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
公司委托书格式范文
2014/10/09 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
2016新年晚会开场白
2015/12/03 职场文书
初中信息技术教学反思
2016/02/16 职场文书
运动会主持人开幕词
2016/03/04 职场文书
win10搭建配置ftp服务器的方法
2022/08/05 Servers