JS实现回到页面顶部动画效果的简单实例


Posted in Javascript onMay 24, 2016

最近在模仿各大网站写页面样式和交互,发现好多都有回到顶部的需要,所以写了一下js,记录下来。

发现还可以添加从快到慢的动画效果和随时下拉滚动条停止滚动的功能, 参考了imooc上相关课程,最终实现JS代码如下:

//页面加载后触发
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);
  };
};

以上这篇JS实现回到页面顶部动画效果的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ExtJS Store的数据访问与更新问题
Apr 28 Javascript
js 判断一个元素是否在页面中存在
Dec 27 Javascript
JS网页播放声音实现代码兼容各种浏览器
Sep 22 Javascript
node.js实现BigPipe详解
Dec 05 Javascript
javascript实现字符串反转的方法
Feb 05 Javascript
chrome不支持form.submit的解决方案
Apr 28 Javascript
JavaScript中的闭包
Feb 24 Javascript
JS打开摄像头并截图上传示例
Feb 18 Javascript
swiper动态改变滑动内容的实现方法
Jan 17 Javascript
在vue项目中引入highcharts图表的方法(详解)
Mar 05 Javascript
JavaScript编写开发动态时钟
Jul 29 Javascript
JavaScript 中for/of,for/in 的详细介绍
Nov 17 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 #Javascript
JS 清除字符串数组中,重复元素的实现方法
May 24 #Javascript
原生js的数组除重复简单实例
May 24 #Javascript
实例讲解jQuery中对事件的命名空间的运用
May 24 #Javascript
json传值以及ajax接收详解
May 24 #Javascript
JS获取屏幕高度的简单实现代码
May 24 #Javascript
基于JavaScript实现回到页面顶部动画代码
May 24 #Javascript
You might like
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
php计算给定日期所在周的开始日期和结束日期示例
2017/02/06 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
让checkbox不选中即将选中的checkbox不选中
2014/07/11 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
jquery validate.js表单验证入门实例(附源码)
2015/11/10 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
动态创建Angular组件实现popup弹窗功能
2017/09/15 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
NodeJS 文件夹拷贝以及删除功能
2019/09/03 NodeJs
vue.js实现照片放大功能
2020/06/23 Javascript
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
Python base64编码解码实例
2015/06/21 Python
Python 爬虫图片简单实现
2017/06/01 Python
python实现textrank关键词提取
2018/06/22 Python
python实现反转部分单向链表
2018/09/27 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
车间组长岗位职责
2013/12/20 职场文书
2014年应届大学生自我评价
2014/01/09 职场文书
物资采购方案
2014/06/12 职场文书
党委班子剖析材料
2014/08/21 职场文书
委托书范本
2014/09/13 职场文书
教代会开幕词
2015/01/28 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
大学同学聚会感言
2015/07/30 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
小组口号霸气押韵
2015/12/24 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python