1. 程式人生 > >js實現點選跳轉到指定位置的方法

js實現點選跳轉到指定位置的方法

對於網頁程式設計開發人員來說,在網站頁面開發的過程中,有時候我們需要實現當點選一個按鈕或者超連結時,立刻滾動跳轉定位到本頁面中指定的位置。對於大多數的程式設計老手來說,這些都不是什麼難事,但對於一些新手或者沒有深入學習程式設計開發的人來說,可能不知道如何去實現,在這裡就和大家分享一下html js點選按鈕滾動跳轉定位到頁面指定位置(DIV)的方法程式碼
    這裡主要分為兩種情況,分別是點選錨點實現跳轉和點選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