返回顶部组件是一种极其常见的网页功能,需求简单:页面滚动一定距离后,显示返回顶部的按钮,点击该按钮可以将滚动条滚回至页面开始的位置。

实现思路也很容易,只要改变document.documentElement.scrollTop或document.body.scrollTop的值即可。

本文抛弃所有加速减速的酷炫效果,回归软件的本质,提供一个最简洁的实现,只追求实用性,不追求所谓的用户体验,效果如下

由于思路跟代码都很简单,所以就直接贴出实现细节了:

var BackTop = function (domE,distance) {

if (!domE) return;

var _onscroll = window.onscroll,

_onclick = domE.onclick;

window.onscroll = throttle(function(){

typeof _onscroll === 'function' && _onscroll.apply(this, arguments);

toggleDomE();

},100);

domE.onclick = function(){

typeof _onclick === 'function' && _onclick.apply(this, arguments);

document.documentElement.scrollTop = 0;

document.body.scrollTop = 0;

};

function toggleDomE(){

domE.style.display = (document.documentElement.scrollTop || document.body.scrollTop) > (distance || 500) ? 'block' : 'none';

}

function throttle(func, wait) {

var timer = null;

return function () {

var self = this, args = arguments;

if (timer) clearTimeout(timer);

timer = setTimeout(function () {

return typeof func === 'function' && func.apply(self, args);

}, wait);

}

}

};

调用方式:

new BackTop(document.getElementById('backTop'))

之所以写这篇博客,弄这么个简单的东西,有两个方面的原因:

1)这段时间一直在手写一些常见的简单组件,这算是一个简单中更简单的一个,为了让这系列的博客更加完整,所以把这个组件补充了进来;

2)我想表达自己在工作过程中的一个观点:就是不要过渡用用户体验来装饰你的软件或者说产品,用户体验这个东西说白了就是两个词,一个是好印象,第二个就是好玩,但这并不是产品开发运营的最终目的,你把东西做的再漂亮,产品的核心价值和服务做的不够的话,就算把返回顶部这种功能做成超级无敌的火箭也是徒劳无功的。做前端开发,得锻炼点控制产品经理瞎提用户体验功能的度,以这个组件来说,我认为做加速或减速效果都是多余的,既增加开发时间,又耽误用户使用的时间,抛弃自己心中那点对技术玩弄的固执,可以让自己的工作做的更加完美。

下面给大家分享几种常用网页返回顶部代码

一、使用HTML的锚标记最简单了

但是唯一的缺点就是样式不怎么样,会显示这个锚标记。

放置位置在

标签之后随便找个地方放都可以,只要靠近顶部即可。

页面底部放置:

返回顶部

二、使用Javascript Scroll函数返回顶部

scrooll函数用来控制滚动条的位置,有两种很简单的实现方式:

方式1(推荐:简单方便):

返回顶部

scroll第一个参数是水平位置,第二个参数是垂直位置,比如要想定位在垂直50像素处,改成scroll(0,50)就可以了。

方式2(注重效果:缓慢向上):

本方式是渐进式返回顶部,要好看一些,代码如下:

functionpageScroll() {window.scrollBy(0,-10);scrolldelay=setTimeout('pageScroll()',100);}返回顶部

这样就会动态返回顶部,不过虽然返回到顶部但是代码仍在运行,还需要在pageScroll函数加一句给停止掉。

if(document.documentElement.scrollTop==0)clearTimeout(scrolldelay);

三、使用Onload加上scroll功能实现动态返回顶部

首先在网页body标签结束之前加上:

返回顶部

php中页面平滑回到顶部代码,原生JS实现平滑回到顶部组件相关推荐

  1. php中页面平滑回到顶部代码,原生JS实现平滑回到顶部组件_javascript技巧

    返回顶部组件是一种极其常见的网页功能,需求简单:页面滚动一定距离后,显示返回顶部的按钮,点击该按钮可以将滚动条滚回至页面开始的位置. 实现思路也很容易,只要改变document.documentEle ...

  2. react中react-custom-scrollbars返回顶部功能,如何使其有平滑动画效果;原生js scroll平滑动画效果

    1.Scrollbars是react-custom-scrollbars插件暴露出来的组件 scrollRef.current.view.scroll({top: 0,left: 0,behavior ...

  3. 使用原生js将轮播图组件化

    代码地址如下: http://www.demodashi.com/demo/11316.html   这是一个轮播图组件,这里是代码地址,需要传入容器的id和图片地址,支持Internet Explo ...

  4. 如何上传图片到fileupload空间_如何用原生js写图片上传组件v2.0(还有新版本)?...

    js图片上传组件: 基本要求: 1.上传的图片可预览,可删除,可被覆盖更新 2.要求图片格式为jpg和png,大小不能超过2M 新加需求: 1.模拟回显,可用本地存储(实际上的回显是通过后台传过来的u ...

  5. html flappybird小游戏代码,原生js实现Flappy Bird小游戏

    这是一个特别简单的用原生js实现的一个小鸟游戏,比较简单,适合新手练习. html结构 css样式 #game { width: 800px; height: 600px; border: 1px s ...

  6. html中制作烟花的效果代码,css3+js实现烟花绽放的动画效果(代码示例)

    本篇文章给大家介绍通过js+css3的transforms属性和keyframes属性来实现烟花绽放的动画效果的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 首先我们来看看效 ...

  7. html 上下翻页效果代码,原生js实现可以带上下翻页的翻页功能(代码)

    本篇文章给大家带来的内容是关于原生js实现可以带上下翻页的翻页功能(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 翻页功能在渲染数据时经常用到,下面是使用原生JS去实现的一个 ...

  8. html萤火虫特效代码,原生JS实现萤火虫效果

    本文实例为大家分享了JS实现萤火虫效果的具体代码,供大家参考,具体内容如下 上代码之前,先看一下效果: CSS部分(此处用元素模拟萤火虫,背景可自行设置): .box{width: 4px;heigh ...

  9. vue版本的仿京东放大镜代码还有原生js版本的。(组件封装)

    vue版本的仿京东放大镜 <template><div class="maxBox"><divref="left"class=&q ...

最新文章

  1. 论文:Multi-Objective Modified Grey Wolf Optimizer for Optimal Power Flow-最优潮流
  2. react下移动端可吸附悬浮窗按钮,支持拖动拖拽功能
  3. redis-4.0.10集群安装(3台机器,6个node),以及在Spring项目中的集成,redis操作工具类
  4. hasOwnProperty和isPrototypeOf
  5. npm 运行报错“Cannot find module ‘@vue/component-compiler-utils/package.json‘”
  6. HDU 4001 To Miss Our Children Time DP
  7. docker_3 docker 部署练习
  8. 燕山大学高数AⅠ复习资料
  9. 服务器KVM虚拟键盘怎么打开,KVM虚拟机键盘布局问题的解决
  10. Kubernetes 污点介绍
  11. react-native 报错 Text strings must be rendered within a <Text> component.
  12. 欢迎进入GeekYang博客导航一站式搜索(所有博客的汇总帖)
  13. java double 出现e_JAVA中double类型运算结果异常的解决
  14. 织梦(dede)更改默认管理员名称admin技巧
  15. 二手交易网站,校园二手交易系统,校园二手交易系统毕业设计
  16. 常见的几个凸函数与凹函数
  17. 日期类的时间从为什么是从1970年1月1日
  18. HTML转为office WORD方案
  19. 在线预览Word、PDF、图片(IE、Edge、Google、FireFox等主流浏览器)
  20. 丈量你的代码,从cloc开始

热门文章

  1. c语言程序设计华北电力大学,2016年华北电力大学电气与电子工程学院C语言程序设计(同等学力加试)考研复试题库...
  2. ajax获得excel文件流在前端打开_主流前端技术讲解,面试必考!
  3. python中msg是什么意思_python下载.msg文件的附件
  4. mysql启动触发器_MYSQL中禁用/启动触发器
  5. LeetCode算法入门- Remove Nth Node From End of List -day17
  6. php手机电子相册,免费电子相册制作软件 手机电子相册制作软件
  7. 虚拟主机安装mysql_如何虚拟主机安装mysql
  8. java的创建管理员对象_java--更改管理员密码,请列位帮忙看看有没有更好的实现方式...
  9. python selenium 怎么查找modal悬浮窗的内容_python教程:五分钟从pubmed down几万篇文献...
  10. 【CSDN】-官方插件推荐懒人必备神器