您的位置:首页 > Web前端 > JQuery

如何用jquery实现点击后跳到页面指定位置

2015-12-16 11:12 731 查看
很多网站都有这种功能,主要为了让用户在长篇大论中比较迅速的跳到自己想要看的内容处,比如bootstrap就有相应的功能。

介绍一种非常简便可以实现这种功能的方式。

思路:1.这里要用到点击事件,因为点击处可能数量较多,因此最好用事件代理来处理,可以提高性能。

2.当点击一个按钮时,能够获取到与他相对应的元素的ID。

3.通过jquery的offset方法返回top和left两个属性后获取他的top属性。

4.用animate方法改变html的scrollTop属性,值为上面的top属性值。

以下是代码:

<!DOCTYPE html>
<html>
<head>
<title>点击返回指定位置</title>
<style>
#nav{
position: fixed;
left:0;
top:10px;
}
#nav li{
width:50px;
height:30px;
font:bold 20px/30px simhei;
text-align: center;
list-style-type: none;
background:#333;
color:#fff;
margin:10px 0;
cursor: pointer;s
}
#list li{
width:50%;
height:300px;
text-align: center;
font:bold 100px/300px simhei;
list-style-type: none;
background:yellow;
color:blue;
margin:50px 200px;
}
</style>
</head>
<body>
<ul id="nav">
<li data-to="go1">1</li>
<li data-to="go2">2</li>
<li data-to="go3">3</li>
<li data-to="go4">4</li>
<li data-to="go5">5</li>
<li data-to="go6">6</li>
<li data-to="go7">7</li>
<li data-to="go8">8</li>
<li data-to="go9">9</li>
<li data-to="go10">10</li>
<li data-to="go11">11</li>
<li data-to="go12">12</li>
<li data-to="go13">13</li>
</ul>
<ul id="list">
<li id="go1">1</li>
<li id="go2">2</li>
<li id="go3">3</li>
<li id="go4">4</li>
<li id="go5">5</li>
<li id="go6">6</li>
<li id="go7">7</li>
<li id="go8">8</li>
<li id="go9">9</li>
<li id="go10">10</li>
<li id="go11">11</li>
<li id="go12">12</li>
<li id="go13">13</li>
</ul>
<script src="jquery.min.js"></script>
<script>
$('#nav').on('click','li',function(e){
var target = e.target;
var id = $(target).data("to");
$('html,body').animate({scrollTop:$('#'+id).offset().top}, 800);
});
</script>
</body>
</html>


页面截图:



点击左边的数字,页面会跳到数字对应的位置,感觉就像坐电梯一样。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: