使用js完成导航栏滑块效果简单阐述
首先是HTML代码这个主要是class的设置:
<div class="site-nav"> <div class="container"> <a class="first">数学</a> <a>语文</a> <a>英语</a> <a>物理</a> <a>化学</a> <div class="nav-marker"></div> </div> </div>
接下来就是css代码,这里主要是对于滑块的position属性的设置。
.navigation {
float: right;
font-size: 15px;
}
.navigation a {
margin-right: 200px;
}
.nav-marker {
height: 10px;
background-color: #8f919e;
position: absolute;
}
最后就是最主要的js代码。
$(document).ready(function() {
setSlip();
});
var setSlip = function() {
var navMarker = $(".nav-marker");
var navCurrent = $(".site-nav a.first");
navMarker.css("left",navCurrent.position().left);
$(".site-nav a").mouseenter(function() {
navMarker.stop().animate({
width: $(this).width(),
left: $(this).position().left + "px"
}, 350);
});
$(".site-nav a").mouseleave(function() {
navMarker.stop().animate({
left: navCurrent.position().left + "px"
}, 350);
});
}
mouseenter()函数用来指示鼠标进入元素时的操作,也就是鼠标放上去时的操作。
mouseleave()函数用来指示鼠标离开元素时的操作,也就是鼠标拿开时的操作。
animate()函数执行CSS属性集的自定义动画,也就是让滑块滑动的函数。
stop() 函数用来指示为被选元素停止当前正在运行的动画,也就是滑块到了这里就该停了。
效果图如下:

浙公网安备 33010602011771号