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 相关文章推荐
jQuery对象和Javascript对象之间转换的实例代码
Mar 20 Javascript
网站如何做到完全不需要jQuery也可以满足简单需求
Jun 27 Javascript
如何防止回车(enter)键提交表单
May 11 Javascript
javascript面向对象之this关键词用法分析
Jan 13 Javascript
Js的Array数组对象详解
Feb 22 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
Apr 28 Javascript
HTML5 canvas 9绘制图片实例详解
Sep 06 Javascript
jquery插件bootstrapValidator数据验证详解
Nov 09 Javascript
Vue 使用 Mint UI 实现左滑删除效果CellSwipe
Apr 27 Javascript
基于elementUI实现图片预览组件的示例代码
Mar 31 Javascript
js设置鼠标悬停改变背景色实现详解
Jun 26 Javascript
Flexible.js可伸缩布局实现方法详解
Nov 13 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
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
2016/01/26 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
2017/07/07 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
Vue的props父传子的示例代码
2020/05/20 Javascript
JSONP解决JS跨域问题的实现
2020/05/25 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
[01:07:21]NAVI vs VG Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
用python处理MS Word的实例讲解
2018/05/08 Python
python实现Flappy Bird源码
2018/12/24 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
python 实现二维列表转置
2019/12/02 Python
Python数据可视化图实现过程详解
2020/06/12 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
python数据抓取3种方法总结
2021/02/07 Python
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
html5画布旋转效果示例
2014/01/27 HTML / CSS
纪伊国屋新加坡网上书店:Kinokuniya新加坡
2017/12/29 全球购物
受欢迎的大学生自我评价
2013/12/05 职场文书
大学生个人求职信例文
2014/07/07 职场文书
食品安全演讲稿
2014/09/01 职场文书
大学辅导员述职报告
2015/01/10 职场文书
失职检讨书大全
2015/01/26 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python
浅谈golang 中time.After释放的问题
2021/05/05 Golang
Java 超详细讲解hashCode方法
2022/04/07 Java/Android
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js