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.form.js的使用详解
Jun 14 jQuery
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 jQuery
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
Sep 22 jQuery
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
Jun 05 jQuery
通过jquery的ajax请求本地的json文件方法
Aug 08 jQuery
jquery.pagination.js分页使用教程
Oct 23 jQuery
jQuery Ajax实现Select多级关联动态绑定数据的实例代码
Oct 26 jQuery
JQuery判断radio单选框是否选中并获取值的方法
Jan 17 jQuery
JQuery实现简单的复选框树形结构图示例【附源码下载】
Jul 16 jQuery
jquery插件开发模式实例详解
Jul 20 jQuery
如何使用Jquery动态生成二级选项列表
Feb 06 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中集成PayPal标准支付的实现方法分享
2012/02/06 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
JavaScript 动态生成方法的例子
2009/07/22 Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
JS Replace()的高级使用方法介绍
2013/06/29 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
JS函数修改html的元素内容,及修改属性内容的方法
2016/10/28 Javascript
JS简单实现移动端日历功能示例
2016/12/28 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
node.js文件操作系统实例详解
2019/11/05 Javascript
python 循环遍历字典元素的简单方法
2016/09/11 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
python图片指定区域替换img.paste函数的使用
2020/04/09 Python
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
Servlet如何得到客户端机器的信息
2014/10/17 面试题
校三好学生主要事迹
2014/01/11 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
涨价通知怎么写
2015/04/23 职场文书
搞笑结婚保证书
2015/05/08 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
不知如何爱孩子,这些方法教会您
2019/08/06 职场文书
实战Python爬虫爬取酷我音乐
2022/04/11 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python