JS滑动下划线导航菜单实现原理
效果如下:http://campus.51job.com/test/zengxl/js
html:
<div class="mainnav">
<div class="navwrap">
<ul class="navul">
<li class="navlist"><a class="nav_a" href="index.html">首页<br/><span>Home</span></a></li>
<li class="navlist"><a class="nav_a" href="#dotwrap">奖励说明<br/><span>Award description</span></a></li class="navlist">
<li class="navlist"><a class="nav_a" href="#">人气投票<br/><span>Popular vote</span></a></li>
<li class="navlist"><a class="nav_a" href="#">Q&A<br/><span>interlocution</span></a></li>
<li class="navlist">
<a class="nav_a" href="#">关于Marvell<br/><span>About Marvell</span></a>
<div class="downlist clear">
<ul>
<li class="navitem"><a href="#">美满全球</a></li>
<li class="navitem lastitem"><a href="#">美满中国</a></li>
</ul>
</div>
</li>
</ul>
</div>
</div>
css:
.mainnav{
background: url(../images/mainnavbg.png) repeat-x;
height: 73px;
width: 100%;
position: relative;
z-index:;
}
.navwrap .navul{
position: relative;
height: 100%;
float: left;
margin-left: 150px;
}
.mainnav .navwrap{
width: 933px;
margin: 0 auto;
height: 73px;
}
.mainnav li.navlist{
float: left;
height: 70px;
position: relative;
z-index:;
}
.nav_bg{
background: #a24601;
}
.mainnav a.nav_a{
padding:10px 28px 0;
font-size: 17px;
color: #000;
text-align: center;
}
.mainnav a span{
font-size: 13px;
}
.downlist .navitem{
float: left;
height: 48px;
line-height: 48px;
margin: 0 18px;
border-bottom: 1px solid #7c3500;
padding: 0 18px;
}
.downlist .lastitem{
border-bottom: none;
}
.downlist{
position: absolute;
top: 70px;
left:;
width: 98.5%;
border: 1px solid #472201;
background-color: #ff7817;
z-index:;
display: none;
}
.navitem a{
font-size: 18px;
color: #000;
}
.navitem .dl_hover{
color: #fff;
}
js:
/**
* 动态添加导航下方的滑动条
*/
var navul = document.getElementsByClassName('navul');
//创建div元素
var navBtn = document.createElement('div');
//设置css样式,注意transition:all
navBtn.style.cssText = 'position:absolute;width:0;bottom:3px;left:0;z-index:998;height:5px;background-color:#4486d4;'+
'box-shadow:0 0 3px #fff;transition:all .5s ease;'
//把创建的这个div添加到ul中
navul[0].appendChild(navBtn);
//获取里面的a元素
var nav_a = document.getElementsByClassName('nav_a');
var len = nav_a.length;
for (var i = 0; i < len; i++) {
//currentStyle:IE的选中样式。 getComputedStyle:FF的计算后样式
var style = nav_a[i].currentStyle||getComputedStyle(nav_a[i]);
//style.paddingLeft得到的值是带有'px'的,所以转换成Number类型
var pL = parseInt(style.paddingLeft,10);
var pR = parseInt(style.paddingRight,10)
//样式初始化
navBtn.style.width = (nav_a[0].offsetWidth-pL-pR)+'px';
navBtn.style.left = (nav_a[0].offsetLeft+pL)+'px';
//给当前对象添加事件。
nav_a[i].addEventListener('mouseenter',function(){
//this指的是当前的这个对象
navBtn.style.width = (this.offsetWidth-pL-pR)+'px';
navBtn.style.left = (this.offsetParent.offsetLeft+pL)+'px';
},false);
nav_a[i].addEventListener('mouseleave',function(){
navBtn.style.width = (nav_a[0].offsetWidth-pL-pR)+'px';
navBtn.style.left = (nav_a[0].offsetLeft+pL)+'px';
},false);
}
JS滑动下划线导航菜单实现原理的更多相关文章
- 20款jquery下拉导航菜单特效代码分享
20款jquery下拉导航菜单特效代码分享 jquery仿京东商城左侧分类导航下拉菜单代码 jQuery企业网站下拉导航菜单代码 jQuery css3黑色的多级导航菜单下拉列表代码 jquery响应 ...
- jQuery实现淡入淡出二级下拉导航菜单的方法
本文实例讲述了jQuery实现淡入淡出二级下拉导航菜单的方法.分享给大家供大家参考.具体如下: 这是一款基于jQuery实现的导航菜单,淡入淡出二级的菜单导航,很经常见到的效果,这里使用的是jquer ...
- 在 jQuery 中使用滑入滑出动画效果,实现二级下拉导航菜单的显示与隐藏效果
查看本章节 查看作业目录 需求说明: 在 jQuery 中使用滑入滑出动画效果,实现二级下拉导航菜单的显示与隐藏效果 用户将光标移动到"最新动态页"或"帮助查询" ...
- MDNavBarView下拉导航菜单(仿美团导航下拉菜单)
说到下拉导航菜单这个东西用得还真不少,细心算一下做开发以来这样的菜单已经写了第三次了,但基本都是不能复用.感觉特累人.不经意看到同事写一个类似的下拉菜单,但他引用了开源库仿大众菜单的库,大致看了一下, ...
- 一款jQuery立体感动态下拉导航菜单特效
一款jQuery立体感动态下拉导航菜单特效,鼠标经过,在菜单栏上方下拉出一个背景图片,效果十分不错的一款jquery特效. 对IE6都是兼容的,希望大家好好研究研究. 适用浏览器:IE6.IE7.IE ...
- 基于jQuery动画二级下拉导航菜单
春节回来给大家分享一款基于jQuery动画二级下拉导航菜单.鼠标经过的时候以动画的形式出现二级导航.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id=" ...
- 纯CSS实现二级下拉导航菜单
这是一款纯CSS菜单,二级下拉导航效果,是最简洁的CSS导航菜单,兼容性也很棒,IE7/8.火狐等都支持,而且它还是学习CSS菜单编写的典型教程,让你学会很多CSS技巧. 运行效果截图如下: < ...
- 纯CSS下拉导航菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="h ...
- 简单的CSS 下拉导航菜单实现代码
<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> <head> <met ...
随机推荐
- bzoj3595 方伯伯的oj
有$n$个数,一开始是$1~n$,有$m$次操作 1.把编号为$x$的人编号改为$y$,保证$y$没出现过 2.把编号为$x$的人提到第一名 3.把编号为$x$的人怼到最后一名 4.查询排名为$x$的 ...
- BurpSuite工具应用及重放攻击实验
一.BurpSuite工具介绍 BurpSuite是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程.所有的工具都共享一个能处理并显示HT ...
- [IBM]掌握Ajax,Ajax中的高级请求和响应
掌握 Ajax, Ajax 中的高级请求和响应 http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html http://www.ibm.c ...
- javascript:function 函数声明和函数表达式 详解
函数声明(缩写为FD)是这样一种函数: 有一个特定的名称 在源码中的位置:要么处于程序级(Program level),要么处于其它函数的主体(FunctionBody)中 在进入上下文阶段创建 影响 ...
- 洛谷【P1177】【模板】归并排序
题目传送门:https://www.luogu.org/problemnew/show/P1177 归并排序: 1.先将\(a\)数组的区间\([l,mid],[mid+1,r]\)排成有序的. 2. ...
- java代码Math.sqrt
总结:这个判断小数的题目,当时全只2有一个人想出了结果.老师很开心.我很桑心~~~~ 我没想到要取膜,我只想到了除以等于0就够了.至于中间的“取膜”,我没凑齐来,还是不够灵活 package com. ...
- C#动态给EXCEL列添加下拉选项
Microsoft.Office.Interop.Excel.Application excel=new Microsoft.Office.Interop.Excel.Application(); M ...
- ansible 基础 简介及 安装
ansible 运维自动化工具. 没有客户端,底层通信依赖于系统软件,linux下基于openssh,win基于powershell
- Matlab数据类型的转换
Matlab中有15种基本数据类型,主要是整型.浮点.逻辑.字符.日期和时间.结构数组.单元格数组以及函数句柄等. 1.整型:(int8:uint8:int16:uint16:int32:uint32 ...
- Entity Framework Code-First(9.10):DataAnnotations - NotMapped Attribute
DataAnnotations - NotMapped Attribute: NotMapped attribute can be applied to properties of a class. ...