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 相关文章推荐
JS解密入门之凭直觉解
Jun 25 Javascript
var与Javascript变量隐式声明
Sep 17 Javascript
javascript实现获取字符串hash值
May 10 Javascript
javascript拖拽效果延伸学习
Apr 04 Javascript
js重写方法的简单实现
Jul 10 Javascript
AngularJS ng-app 指令实例详解
Jul 30 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
Jun 17 Javascript
CSS3 动画卡顿性能优化的完美解决方案
Sep 20 Javascript
Angular6新特性之Angular Material
Dec 28 Javascript
layui数据表格跨行自动合并的例子
Sep 02 Javascript
vue实现文字加密功能
Sep 27 Javascript
p5.js临摹动态图形的方法
Oct 23 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操作符与控制结构代码
2011/12/30 PHP
php计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
完美解决AJAX跨域问题
2013/11/01 Javascript
60个很实用的jQuery代码开发技巧收集
2014/12/15 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
浅析如何利用JavaScript进行语音识别
2016/10/27 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
浅谈Vue下使用百度地图的简易方法
2018/03/23 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
Python内置的字符串处理函数详细整理(覆盖日常所用)
2014/08/19 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
Python scikit-learn 做线性回归的示例代码
2017/11/01 Python
python 删除指定时间间隔之前的文件实例
2018/04/24 Python
python设置环境变量的原因和方法
2019/06/24 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
Matplotlib.pyplot 三维绘图的实现示例
2020/07/28 Python
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
大学生应聘自荐信
2013/10/11 职场文书
化学系大学生自荐信范文
2014/03/01 职场文书
社团活动总结报告
2014/06/27 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
详解python的内存分配机制
2021/05/10 Python
Html5获取用户当前位置的几种方式
2022/01/18 HTML / CSS
基于Python实现将列表数据生成折线图
2022/03/23 Python