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

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

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

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

6acec4951313902e7f148eeec6b1cdfb.gif

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

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);

}

}

};

调用方式:

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

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标签结束之前加上:

返回顶部

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Word XP中也能插入国际音标、拼音

在wps2000 中可以轻松地插入国际音标和汉语拼音,但是利用它输入的汉语拼音和国际音标只能够在WPS2000中打印输入,无法到别的软件中进行再编辑。同时尽管Word XP具有符号插入的功能,但是无论如何都找不到国际音标和汉语拼音,不过&a…

数学有多震撼?!我真的没有在开车!

让我们来欣赏一下日本高校欧派函数(おっぱい関数)对抗大赛中的作品吧。埼玉大学(理学部)其中 明治大学広島大学(理学部)東京農業大学其中 是一个可调常数,下图中p3。文教大学京都大学其中首都大…

一些微服务拆分的浅见

大家好,我是Z哥。不管是十几年前 SOA 的流行,还是 7、8 年前微服务的大行其道,还是如今云原生的展露锋芒,背后都离不开一件事,程序拆分或者说服务拆分。否则,一个单体应用,以上的这些技术潮流好…

centos 6.0安装杀毒软件clamAV 0.98

1、查看系统版本[rootlocal]# lsb_release -aLSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarchDistributor ID: CentOSDescription: CentOS release 6.4 (…

php post api json数据,php – REST API:请求身份为JSON或纯POST数据?

POST,PUT,GET都是HTTP动词,并且本身并不表示传输数据的格式,因此没有POST格式。这意味着您可以按照您选择的任何方式对数据进行编码。现在,你决定采用什么样的格式,真的应该是一个API通常被使用的问题。如果…

命令行下的mysql的基本操作

1.登录数据库 MySQL -h localhost -u root -p Enter password:**** 如果信息正确,出现数据库名字 2.关闭MySQL net stop MySQL 关闭 net start MySQL 启动 3.登录成功后,显示当前数据库已有数据 show database; 4.建立数据库 drop database i…

大变天!刚刚,山东突然宣布!关乎800万人...

全世界只有3.14 % 的人关注了青少年数学之旅由山东省大数据局主办、青岛市大数据发展管理局承办的山东省数据应用(青岛)创新创业大赛自9月23日启动以来,凭借着新颖赛题、丰富数据和丰厚奖励,吸引了社会各界数据爱好者与从业者的广…

MassTransit中RequestResponse基本使用

MassTransit 是一个自由、开源、轻量级的消息总线基于.Net框架, 用于创建分布式应用程序。方便搭建基于消息的松耦合异步通信的应用程序和服务。MassTransit 在现有消息传输上提供了一组广泛的功能, 从而使开发人员能够友好地使用基于消息的会话模式异步连接服务。基于消息的通…

ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效

今天项目展示,但是有些数据不是特别规范,我就直接使用Toad去操作数据库中的数据。结果在修改某一张表的时候就出现了上述错误,表示十分无奈。 出错原因分析: 首先执行如下语句: SELECT sid, serial#, username, osuser…

php2612,达人曝光LGLSNJ2612AR质量好吗?怎么样呢?体验报告揭秘

其实这个LGLSNJ2612AR还可以的 哟,超凡的造型设计和外观,做工细腻,不少的人想要了解这LGLSNJ2612AR怎么样?质量好不好?实实在在的说这款LGLSNJ2612AR使用体验后个人感觉蛮可以的哈,刚购没多久的&#xff0c…

数据仓库的 RDBMS 性能优化指南

转:http://www.microsoft.com/china/technet/prodtechnol/sql/2000/maintain/c2061.asp数据仓库的 RDBMS 性能优化指南 本性能优化指南旨在帮助数据库管理员和开发人员配置 Microsoft SQL Server™ 2000,以获得最佳的性能,并帮助找出造成关系…

JAVA反射使用手记

JAVA反射使用手记 本篇文章为在工作中使用JAVA反射的经验总结,也可以说是一些小技巧,以后学会新的小技巧,会不断更新。本文不准备讨论JAVA反射的机制,网上有很多,大家随便google一下就可以了。 在开始之前,…

说普通话时舌头卷不起来是一种什么体验?| 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅

使用Lucene.Net实现全文检索

Lucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎。开发人员可以基于Lucene.net实现全文检索的功能。Lucene.net是…

独立主题需要有index.php模板文件,wordpress 主题模板文件列表及其作用

wordpress 主题模板文件列表及其作用主页:1.home.php2.index.php文章页:1.single-{post_type}.php – 如果文章类型是videos(即视频),WordPress就会去查找single-videos.php(WordPress 3.0及以上版本支持)2.single.php3.index.php页面:1.自定义模板 – 在…

vim编辑技巧

转载于:https://blog.51cto.com/ovcer/1353415

IT基础设施最佳实践ITIL

IT基础设施最佳实践ITIL1. 前言1.1.困扰问题随着IT技术在企业中的应用越广,企业业务流程的正常运作就越离不开IT部门的支持。IT在给企业业务带来效益的同时,也带来了成本和风险的 困扰,尤其是在某些特殊行业,例如电信、金融等行业…

一个本科生,只用了两年就拿下诺贝尔奖,拯救了无数糖尿病患者

全世界只有3.14 % 的人关注了青少年数学之旅早在三千五百年前,古埃及就已经有对糖尿病的描述,两千多年前,古希腊医生亚的阿勒特奥斯把这种主要症状为“排泄多且甜的尿液”的疾病命名为“Diabetes”,也就是糖尿病。几千年来&#x…

C#中使用jieba.NET、WordCloudSharp制作词云图

词云简介“词云”由美国西北大学新闻学副教授、新媒体专业主任里奇戈登(Rich Gordon)于2006年最先使用,是通过形成“关键词云层”或“关键词渲染”,对文本中出现频率较高的“关键词”的视觉上的突出。网上大部分文章介绍的是使用P…

js框架页弹出页面关闭

2019独角兽企业重金招聘Python工程师标准>>> <!-- lang: js --> function to(href) {if (top.location self.location) {//window.opener null;window.opener.location.reload();window.open(, _self);window.close();} else {window.location.href href;}…