带动画的回到返回顶部

<!DOCTYPE html> 
<html> 
  
  <head> 
    <meta charset="UTF-8"> 
    <title>回到顶部功能</title> 
  </head> 
  <style> 
    * { 
      padding: 0; 
      margin: 0; 
    } 
      
    .gotop { 
      display: none; 
      position: fixed; 
      bottom: 50px; 
      right: 50px; 
      width: 40px; 
      height: 40px; 
      padding: 5px; 
      background-color: #F00; 
      color: #FFF; 
      text-align: center; 
      cursor: pointer; 
    } 
  </style> 
  <script src="http://libs.baidu.com/jquery/1.8.1/jquery.min.js"></script> 
  
  <body> 
    <p>1</p><br /><br /><br /><br /><br /><br /> 
    <p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br /><p>1</p><br /><br /><br /><br /><br /><br />
  
    <div id="btn" class="gotop"> 
      <p>回到顶部</p>
    </div> 
  </body> 
  <script> 
    //页面加载后触发
window.onload = function(){
  var btn = document.getElementById('btn');
  var timer = null;
  var isTop = true;
  //获取页面可视区高度
  var clientHeight = document.documentElement.clientHeight;
  //滚动条滚动时触发
  window.onscroll = function() {
  //显示回到顶部按钮
    var osTop = document.documentElement.scrollTop || document.body.scrollTop;
    if (osTop >= clientHeight) {
      btn.style.display = "block";
    } else {
      btn.style.display = "none";
    };
  //回到顶部过程中用户滚动滚动条,停止定时器
    if (!isTop) {
      clearInterval(timer);
    };
    isTop = false;
  };
  btn.onclick = function() {
    //设置定时器
    timer = setInterval(function(){
      //获取滚动条距离顶部高度
      var osTop = document.documentElement.scrollTop || document.body.scrollTop;
      var ispeed = Math.floor(-osTop / 7);
       
      document.documentElement.scrollTop = document.body.scrollTop = osTop+ispeed;
      //到达顶部,清除定时器
      if (osTop == 0) {
        clearInterval(timer);
      };
      isTop = true;
       
    },30);
  };
};
  </script> 
  
</html>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值