时间:2021-05-26
实现原理
请看以下源代码
<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;}声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了jquery+CSS3实现淘宝移动网页菜单效果。分享给大家供大家参考。具体如下:这是一款基于jquery+CSS3实现的淘宝移动网页菜单,其实这个
本文实例讲述了jquery+CSS3模拟Path2.0动画菜单效果代码。分享给大家供大家参考。具体如下:CSS3实现的仿手机软件菜单,动画菜单,注意的地方,小按
本文实例讲述了jQuery实现的双11天猫拆红包抽奖效果代码,是一款基于jquery+css3实现的鼠标点击红包摇一摇抽奖代码,具有点击抽奖后红包摇动并弹出抽奖
本文介绍了Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码,分享给大家,具体如下:PC端移动端代码左侧导航*{margin:0;padding
本文实例讲述了jQuery+css实现的蓝色水平二级导航菜单效果。分享给大家供大家参考。具体如下:这是一款蓝色经典的jQuery+CSS实现水平二级导航菜单,相