如何实现jquery带滚动条导航效果?方法示例

发布时间:2020-01-22编辑:脚本学堂
一个jquery导航效果的例子,导航中带有滚动线条,在导航的侧边带有滚动条,可自由滚动。

jquery如何实现带滚动线导航效果,来看本节脚本学堂小编整理的这个例子。

jquery实现带滚动线条导航效果的方法

1、css样式代码(用于控制jquery滚动条样式)
 

复制代码 代码示例:
body,ul,li{margin:0;padding:0;}
#testnav{;height:80px;background:#333;}
.testmenu{width:320px;padding-top:45px;margin:0 auto;}
.testbox div{float:left;width:80px;height:30px;text-align:center;}
.testbox a{color:#ccc;text-decoration:none;font:700 12px/1 "宋体";}
.testbox a:hover{color:#CCEEFF;text-decoration:underline;}
.testline-box{width:100%;background:#eee;}
.testline{display:block;height:3px;width:80px;background:#999;}

2、html部分
 

复制代码 代码示例:
<div id="testnav">
<div class="testmenu">
<div class="testbox">
<div><a href="javascript:void(0)">首页</a></div>
<div><a href="javascript:void(0)">说说</a></div>
<div><a href="javascript:void(0)">日志</a></div>
<div><a href="javascript:void(0)">相册</a></div>
</div>
<div style="clear:both;"></div>
<div class="testline-box">
<span class="testline"></span>
</div>
</div>
</div>

3、jquery滚动条代码
 

复制代码 代码示例:
var $line=$("span.testline");
var $w=$(".testbox > div").width();
var m=0;
$(".testbox > div").each(function(n){
 var x=$w*n;
 $(this).mouseenter(function(){
$line.stop(true,true).animate({"margin-left":x},"slow","easeOutBack");
 });
 $("a",this).click(function(){
m=x;
 });
});
$(".testbox").mouseleave(function(){
 $line.stop(true,true).animate({"margin-left":m},"slow","easeOutBack");
});

注意:
代码中使用了easing插件的效果。
如果不想使用easing插件则可将JS中的“easeOutBack”删掉或者换成“swing”。
菜单的链接地址使用了javascript:void(0)代替,只是为了方便演示效果。

实际应用中,可以根据当前的url来判断当前所在位置,确定位置之后再重新给JavaScript中变量m赋值,从而能确定线条应处于哪个菜单下。