點選可以平滑定位到網頁指定位置

antzone發表於2017-04-02

其實就是比較人性化的錨點效果,點選能夠以平滑的方式定位到網頁的指定位置。

並不像是預設的錨點功能瞬間到達的效果。

程式碼如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style>
#anchor{
  width:100px;
  height:1300px;
  background:#ccc;
  text-align:center;
  margin:0px auto;
  margin-top:200px;
}
p{
  position:fixed;
  width:100px;
  height:100px;
  background:#ccc;
  text-align:center;
  right:0px;
  bottom:10px;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
  $("a.topLink").click(function() {
    $("html, body").animate({
      scrollTop: $($(this).attr("href")).offset().top + "px"
    }, {
      duration: 500,
      easing: "swing"
    });
    return false;
  });
});
</script>
</head>
<body>
<div id="anchor">螞蟻部落</div>
<p><a href="#anchor" class="topLink">點選定位</a></p>
</body>
</html>

上面的程式碼實現了平滑定位效果,下面介紹一下它的實現過程。

一.程式碼註釋:

(1).$(document).ready(function(){}),當文件結構完全載入完畢再去執行函式中的程式碼。

(2).$("a.topLink").click(function() {}),為class屬性值為topLink的連結<a>元素註冊click事件處理函式。

(3).$("html, body").animate({

    scrollTop: $($(this).attr("href")).offset().top + "px"

  }, {

    duration: 500,

    easing: "swing"

  });

  return false;

}),以動畫方式實現了定位效果。

$($(this).attr("href")).offset().top,連結的href屬性值就是div元素的id屬性值。

$($(this).attr("href"))獲取div元素。

$($(this).attr("href")).offset().top,獲取div元素距離頂部的距離。

(4).return false,取消點選連結的跳轉效果。

二.相關閱讀:

(1).animate()可以參閱jQuery animate()一章節。

(2).attr()方法可以參閱jQuery attr()一章節。

(3).offset()方法可以參閱jQuery offset()一章節。

(4).scrollTop屬性可以參閱scrollTop一章節。

相關文章