js實現點選跳轉到指定位置的方法
這裡主要分為兩種情況,分別是點選錨點實現跳轉和點選button按鈕實現跳轉頁面,下面就分別探討一下兩種方式的具體實現程式碼。
一:通過html錨點實現滾動定位到頁面指定位置(DIV):
如果我們要點選實現跳轉的地方是一個html錨點,也就是點選一個A標籤超連結實現跳轉,可以把A標籤的href屬性直接指向跳轉指定位置的div,程式碼實現思路如下:
<a href="#abc">點選跳轉</a>
<div id="abc">將要跳轉到這裡</div>
點選上面A連結將會滾動跳轉到同一頁面中id="abc"的那個div處,需要注意的是跳轉指定位置div的id是唯一的,A標籤直接指向此id,id前面別忘了加上#號。
二:通過點選button按鈕使用js實現滾定跳轉到頁面指定位置(DIV):
如果我們要點選實現跳轉的地方是一個button按鈕的話,由於button不能新增href,所以我們只好使用js跳轉程式碼來實現,具體程式碼示例如下:
<script>
function onTopClick() {
window.location.hash = "#abc";
}
</script>
<input type="button" name="Submit" value="提交" onclick="javascript:onTopClick();" />
<div id="abc">跳轉到的位置</div>
上面這段程式碼,點選提交按鈕,將會滾定跳轉定位到同一頁面id="abc"的div處。這段js點選跳轉頁面程式碼實現的原理是:頁面各元素賦予唯一ID,點選提交按鈕觸發js點選事件,js通過ID滾動跳轉定位到該元素,window.location.hash = "#abc"指的就是定位到當前頁面id="abc"的div。
三:用animate屬性,當點選錨點後,頁面滾動到相應的DIV。接著上面的程式碼,具體新增如下程式碼:
html頁面:
<div
id="container">
<p id="p1">div1</p>
<p id="p2">div2</p>
<p id="p3">div3</p>
</div>
<div id="div1">div1</div>
<div id="div2">div2</div>
<div id="div3">div3</div>
css樣式:
div
{
height: 800px;
width: 400px;
border: 2px solid black;
}
#container{
position: fixed;
margin:50px 500px;
}
js程式碼如下:
<script
type="text/javascript" src="http://code.jquery.com/jquery-1.8.0.min.js"></script>
$(document).ready(function() {
$("#p1").click(function() {
$("html, body").animate({
scrollTop: $("#div1").offset().top }, {duration: 500,easing: "swing"});
return false;
});
$("#p2").click(function() {
$("html, body").animate({
scrollTop: $("#div2").offset().top }, {duration: 500,easing: "swing"});
return false;
});
$("#p3").click(function() {
$("html, body").animate({
scrollTop: $("#div3").offset().top }, {duration: 500,easing: "swing"});
return false;
});
});
關於window.location.hash