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 读取xml,写入xml 实现代码
Jul 10 Javascript
jQuery创建自己的插件(自定义插件)的方法
Jun 10 Javascript
如何让div span等元素能响应键盘事件操作指南
Nov 13 Javascript
JavaScript中的typeof操作符用法实例
Apr 05 Javascript
jQuery多级弹出菜单插件ZoneMenu
Dec 18 Javascript
JavaScript中setMonth()方法的使用详解
Jun 11 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
Aug 05 Javascript
详解Vue自定义过滤器的实现
Jan 10 Javascript
jQuery输入框密码的显示隐藏【代码分享】
Apr 29 jQuery
vue设置动态请求地址的例子
Nov 01 Javascript
vue-socket.io接收不到数据问题的解决方法
May 13 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
May 18 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
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
PHP中使用sleep函数实现定时任务实例分享
2014/08/21 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
PHP 8新特性简介
2020/08/18 PHP
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
jQuery筛选数组之grep、each、inArray、map的用法及遍历json对象
2016/06/20 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
MUI 上拉刷新/下拉加载功能实例代码
2017/04/13 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
微信小程序动态生成二维码的实现代码
2018/07/25 Javascript
vue+springboot实现项目的CORS跨域请求
2018/09/05 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
js实现中文实时时钟
2020/01/15 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
简单了解python的内存管理机制
2019/07/08 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
Python:slice与indices的用法
2019/11/25 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
python matplotlib实现将图例放在图外
2020/04/17 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
舞蹈比赛获奖感言
2014/02/04 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
出生证明格式
2015/06/15 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
2016高校自主招生自荐信范文
2016/01/28 职场文书
Elasticsearch 配置详解
2022/04/19 Java/Android
go goth封装第三方认证库示例详解
2022/08/14 Golang