最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery中頁面返回頂部的方法總結

 更新時間:2016年12月30日 14:03:55   作者:wudipmd  
本文給大家總結了關于jquery中頁面返回頂部的方法小結,以及各個方法的優(yōu)缺點介紹,非常不錯,具有參考借鑒價值,需要的朋友參考下吧

當頁面過長時,通常會在頁面下方有一個返回頂部的button,總結一下,大概三種實現(xiàn)方法,下面說下各方法及優(yōu)缺點。

方法一 錨點定位

<a href="#" class="top" id="top">返回頂部</a>

這種方法設置方便,但缺點是會刷新頁面(我是在同事的樂視手機上發(fā)現(xiàn)的)。

方法二 window.scrollTo(x,y)

<a href="javascript:scrollTo(0,0)" class="top" id="top">返回頂部</a>

這種方法也很方便,并且不會刷新頁面,缺點是沒有滾動效果。

scrollTo接收的參數(shù)用來定位視口左上角在整個滾動內(nèi)容區(qū)域的坐標,比如我設置scrollTo(100,100),就是讓滾動內(nèi)容的坐標(100,100)的點處在視口的左上角。

方法三 設置帶有動畫效果的滾動

原生方法

/* html部分 */
<body>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<a href="javascript:;" class="top" id="top">返回頂部</a>
</body>
<style>
/* css部分 */
div {
  height: 150px;
}
div:nth-child(odd) {
  background-color: #8ae238;
}
div:nth-child(even) {
  background-color: #66d9ef;
}
.top {
  position: fixed;
  right: 50px;
  bottom: 50px;
  display: block;
  width: 50px;
  height: 50px;
  font-size: 20px;
  background-color: white;
  display: none;
}
</style>
<script>
/* js代碼 */
  var topBtn = document.getElementById('top');
  // 獲取視窗高度
  var winHeight = document.documentElement.clientHeight;
  window.onscroll = function () {
    // 獲取頁面向上滾動距離,chrome瀏覽器識別document.body.scrollTop,而火狐識別document.documentElement.scrollTop,這里做了兼容處理
    var toTop = document.documentElement.scrollTop || document.body.scrollTop;
    // 如果滾動超過一屏,返回頂部按鈕出現(xiàn),反之隱藏
    if(toTop>=winHeight){
      topBtn.style.display = 'block';
    }else {
      topBtn.style.display = 'none';
    }
  }
  topBtn.onclick=function () {
    var timer = setInterval(function () {
      var toTop = document.documentElement.scrollTop || document.body.scrollTop;
      // 判斷是否到達頂部,到達頂部停止?jié)L動,沒到達頂部繼續(xù)滾動
      if(toTop == 0){
        clearInterval(timer);
      }else {
        // 設置滾動速度
        var speed = Math.ceil(toTop/5);
        // 頁面向上滾動
        document.documentElement.scrollTop=document.body.scrollTop=toTop-speed;
      }
    },50);
  }
</script>

大概的思路就是:

為window綁定scroll事件,監(jiān)聽頁面滾動距離,當超過一屏高度時,顯示返回頂部的按鈕

為按鈕綁定點擊事件,返回頂部的方法就是獲取頁面滾動的距離,然后計算步長,這里采用滾動距離除以5的方式,滾動速度由快到慢。這里使用定時器控制滾動的頻率,建議設置較小一點的值,如果時間間隔過大會有‘跳幀'的感覺。
這種方法優(yōu)點是有了動畫效果,只是實現(xiàn)起來比較麻煩,下面介紹一下jQuery方法。

jQuery方法

jQuery方法只是在js代碼部分不同,具體代碼如下

<script>
/* js代碼 */
$(window).on('scroll', function () {
  // 判斷顯示還是隱藏按鈕
  if($(this).scrollTop()>=$(this).height()){
    $('#top').fadeIn('slow');
  }else {
    $('#top').fadeOut('slow');
  }
});
$('#top').on('click',function () {
  // 設置滾動動畫,這里注意使用的是$('body')不是$(window)
  $('body').animate({scrollTop:'0'},500);
});
</script>

jQuery方法的優(yōu)點是方便,而且動畫效果比較流暢。

這里需要注意設置animate方法時使用的是jQuery封裝的body對象而不是window對象,因為我們是要設置body的scrollTop屬性。

總結

三個方法各有優(yōu)劣,不過總體來講,jQuery的方法更適合大多數(shù)場景。

以上所述是小編給大家介紹的jQuery中頁面返回頂部的方法總結,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

最新評論

琼结县| 鄂温| 广东省| 邵阳市| 宜都市| 洪泽县| 常山县| 耿马| 宁陕县| 剑阁县| 虞城县| 凌源市| 宣威市| 湖口县| 靖远县| 儋州市| 府谷县| 定远县| 龙川县| 景洪市| 涿鹿县| 永顺县| 龙门县| 滦南县| 镇沅| 家居| 灌云县| 洛隆县| 囊谦县| 蒙自县| 温宿县| 会泽县| 济宁市| 开封市| 铁岭县| 筠连县| 敦煌市| 德钦县| 新安县| 两当县| 紫云|