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 相关文章推荐
通过javascript的匿名函数来分析几段简单有趣的代码
Jun 29 Javascript
Javascript中的isNaN函数使用说明
Nov 10 Javascript
js判断生效时间不得大于失效时间的思路及代码
Apr 23 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
Sep 10 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
Oct 22 Javascript
使用POST方式弹出窗口的两种方法示例介绍
Jan 29 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
Jun 26 Javascript
学好js,这些js函数概念一定要知道【推荐】
Jan 19 Javascript
Angular多选、全选、批量选择操作实例代码
Mar 10 Javascript
[原创]jquery判断元素内容是否为空的方法
May 04 jQuery
vue中父子组件注意事项,传值及slot应用技巧
May 09 Javascript
JavaScript动态创建二维数组的方法示例
Feb 01 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
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
PHP预定义变量9大超全局数组用法详解
2016/04/23 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
YII2框架中actions的作用与使用方法示例
2020/03/13 PHP
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
node学习记录之搭建web服务器教程
2017/02/16 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
[08:56]DOTA2-DPC中国联赛2月23日Recap集锦
2021/03/11 DOTA
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
详谈python read readline readlines的区别
2017/09/22 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
使用python进行广告点击率的预测的实现
2019/07/04 Python
python利用递归方法实现求集合的幂集
2020/09/07 Python
python logging模块的使用详解
2020/10/23 Python
python 制作本地应用搜索工具
2021/02/27 Python
美国家具网站:Cymax
2016/09/17 全球购物
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
运动会稿件50字
2014/02/17 职场文书
学生安全责任书范本
2014/07/24 职场文书
设备收款委托书范本
2014/10/02 职场文书
社区国庆节活动总结
2015/03/23 职场文书
2015年学校办公室主任工作总结
2015/07/20 职场文书
java基础——多线程
2021/07/03 Java/Android
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android