jquery實現的點選頁面動畫方式平滑定位到某元素程式碼

antzone發表於2017-03-17

在實際應用中可能有這樣的效果,就是點選一個按鈕或者其他元素可以實現定位效果,當然可以使用錨點實現,但是這個不夠美觀,沒有平滑的動畫過渡效果,下面就通過程式碼例項介紹一下,如何利用jquery實現平滑的定位效果。

程式碼如下:

[HTML] 純文字檢視 複製程式碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>螞蟻部落</title>
<style type="text/css">
.box{
  height:200px;
  width:100%;
  background:#ccc;
  margin:10px 0;
}
.location{
  position:fixed;
  right:0;
  bottom:10px;
  width:20px;
  background:#FFC;
  padding:5px;
  cursor:pointer;
  color:#003
}
#thediv{
  width:100px;
  height:100px;
  background:green;
  margin-top:150px;
}
</style>
<script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $('.scroll_a').click(function(){
    $('html,body').animate({scrollTop:$('#thediv').offset().top}, 800);
  });
});
</script>
</head>
<body style="height:1000px">
<div id="thediv"></div>
<div class="location">
  <p class="scroll_a">定位</p>
</div>
</body>
</html>

以上程式碼實現了我們的要求,下面介紹一下它的實現過程。

一.實現原理:

原理其實非常的簡單,就是點選按鈕的時候設定body元素的scrollTop屬性值,scrollTop屬性規定的是頁面被向上滾動遮擋的尺寸,而offset().top則是匹配元素距離文件頂部的距離,所以設定scrollTop的屬性值為offset().top就可以將指定元素定位於頁面文件去的頂部邊緣。

二.相關閱讀:

1.click事件可以參閱jQuery click 事件一章節。

2.animate()函式可以參閱jQuery animate()一章節。

3.scrollTop屬性可以參閱js  scrollTop一章節。 

4.offset()函式可以參閱jQuery offset()一章節。

相關文章