javascript 缓动返回顶部案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>document</title>
<style media="screen">
img {
position: fixed;
bottom: 100px;
right: 50px;
cursor: pointer;
display: none;
border: 1px solid #ddd;
}
div {
width: 800px;
margin: 80px auto;
font: 500 18px/1.5 "simSun";
color: darkorange;
}
</style>
</head>
<body>
<img src="data:images/Top.jpg" alt="">
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsa porro numquam modi. Nulla, in maxime numquam iure debitis consequatur quasi quae consequuntur vitae omnis, commodi rem quibusdam quisquam dolores quo ut ipsam. Doloremque aliquam ipsum vero tenetur cumque eveniet quo cupiditate et ullam eum mollitia cum, eos aspernatur dicta accusamus, fugit deserunt fuga, veritatis natus in ratione voluptas, laboriosam facilis! Similique debitis, repellendus corrupti perspiciatis cum accusantium maxime nam facere architecto quasi aut quod, iusto dignissimos cumque necessitatibus! Accusantium culpa,
<br>
<br> adipisci natus quas quae quia tempore perspiciatis dolorem ut explicabo sequi, sit! Ab ducimus placeat expedita iusto maiores vel animi, quasi id rem omnis dolorum tenetur explicabo veritatis. Praesentium ullam, architecto veniam voluptatibus molestias doloribus sed aperiam ipsam iusto cum nisi vero nostrum officia quae, sit hic commodi! Modi laborum porro hic provident tempora. Error libero itaque vitae molestias dolore tempore repellat sed cum voluptate explicabo officiis aliquid, vero modi, possimus fugit ipsam reiciendis minima. Saepe asperiores fugiat pariatur, vero beatae, blanditiis. Aliquid consequuntur omnis minima voluptas obcaecati mollitia odio eum ex repellendus rerum, laboriosam molestias,
<br>
<br> veniam, aliquam dolorum! Vel eaque, modi vero autem molestias doloribus quae facere, accusamus enim atque amet. Commodi, saepe temporibus quaerat veritatis omnis, nemo facere odit beatae iusto doloremque consequatur odio harum! Facere dolores provident cum, corporis iure nulla nostrum dolorum minus in quaerat laboriosam vero sequi delectus quos perferendis maxime quas, consectetur quis aliquam illo et temporibus. Temporibus veritatis sequi, mollitia rem eveniet repellat quos in nulla! Deleniti magni fugitbr
<br>
<br>dicta, ea debitis natus molestiae itaque nam, ab quidem enim ex optio, eaque, qui perferendis modi. Omnis in voluptate necessitatibus saepe, vero quas vitae cumque sint sequi, ad sapiente nemo illum eum quidem, rerum laudantium commodi dicta facilis veniam molestias quis maxime nisi? Dolor delectus sapiente eveniet ipsam pariatur, fuga quos rerum officia nostrum aliquam temporibus odio minus quod earum libero mollitia quas blanditiis. Minus voluptates, numquam repudiandae unde odio ducimus quaerat eligendi veniam debitis facilis esse iste saepe
<br>
<br>cum iure? Alias voluptate praesentium beatae mollitia debitis a dolorum, incidunt blanditiis maxime. Deleniti debitis quae minus eaque tempore vel eligendi a neque ad, incidunt nobis in sit obcaecati dolore. Ex earum cum distinctio fugiat eligendi adipisci, debitis atque, non eius iusto, consectetur magnam sapiente quo repellendus. Natus in itaque possimus eos, repudiandae debitis necessitatibus vero facere eveniet animi, minus sint illo dicta. Odit, ad temporibus non laboriosam, error maiores earum reprehenderit illo nisi vel est fugiat magni eius tempora tempore! Quaerat modi omnis est, ipsa expedita blanditiis. Voluptas qui modi nulla earum fuga perspiciatis mollitia et placeat, provident cum molestiae ab veritatis, consequatur necessitatibus sequi, nihil error quibusdam odit. Distinctio mollitia, repudiandae magni minus aliquid harum aperiam illum in? Hic, quaerat illo deserunt nihil voluptatem molestiae cupiditate, quis dolores unde aperiam minus. Aspernatur asperiores aliquam fugit non animi, dolor, perferendis delectus similique tempora? Sed ex beatae natus voluptate maiores laudantium voluptatem, quo earum praesentium repellat odit, vel fuga tenetur cum id, iure fugit sapiente repellendus
<br>
<br>perspiciatis totam. Veritatis, modi consequuntur dolore vero repudiandae distinctio sit maxime sapiente. Quisquam tempora laborum sed excepturi natus debitis porro corrupti cum voluptatem vitae, odit, officia ullam illo officiis odio consequatur expedita possimus! Dicta placeat nulla numquam hic itaque molestiae asperiores assumenda similique id eos vero earum, ea fugiat esse blanditiis excepturi obcaecati sequi! Sapiente est, nostrum non saepe, facere velit placeat voluptas, sit molestiae rem soluta
<br>
<br>iure itaque illum! Rem repellendus, explicabo asperiores accusantium, deleniti aperiam accusamus reiciendis alias dolore modi ipsum beatae dolor praesentium. Maiores amet molestias pariatur in animi ipsa nobis deleniti nulla voluptatum rerum sapiente culpa minima reiciendis voluptatem, nam, impedit fuga, esse delectus enim repellat, laboriosam quod sunt repellendus! Pariatur perferendis voluptates
<br>
<br>error rem non, ullam laudantium? Quidem nisi quos debitis, unde obcaecati cumque animi autem atque facere neque incidunt itaque esse error harum asperiores fuga distinctio culpa. Reprehenderit minus deserunt nobis repellendus et provident, inventore commodi sed laudantium! Saepe inventore vel mollitia maiores eum dolor quia esse, facilis magni, exercitationem suscipit, vero magnam qui aut culpa molestias neque porro.
</div> <script type="text/javascript">
var img = document.getElementsByTagName("img")[0];
window.onscroll = function(){
//被卷去的距离>200,显示返回顶部图标
//否则隐藏
if (scroll().top > 1000) {
img.style.display = "block";
}else {
img.style.display = "none";
} //每次移动滚动条的时候都给leader赋值,模拟leader获取顶部的距离
leader = scroll().top;
}
//缓动跳转到页面最顶端
var timer = null;
var target = 0; //目标位置
var leader = 0; //显示区域自身的位置 img.onclick = function(){
//技术点:window.scrollTo(0,0)
//要用定时器,先清定时器
clearInterval(timer);
timer = setInterval(function(){
//获取步长
var step = (target - leader) / 10;
//二次处理步长
step = step > 0 ? Math.ceil(step) : Math.floor(step);
leader = leader + step;
//显示区域移动
window.scrollTo(0,leader);
//window.scrollTo(x,y); x:横向滚动条的坐标; y:纵向滚动条的坐标;
//清除定时器
if (leader === 0) {
clearInterval(timer);
}
},30);
} function scroll(){ //开始封装要用的scrollTop
if (window.pageYOffset != null) {
//因为window.pageYOffset的默认值是0,所以需要判断
return {
left: window.pageXOffset,
top: window.pageYOffset
}
}else if (document.compatMode === "CSS1Compat") {
//标准浏览器,来判断有没有声明DTD
return {
left: document.documentElement.scrollLeft,
top: document.documentElement.scrollTop
}
}
return {
//未声明DDTD
left: document.body.scrollLeft,
top: document.body.scrollTop
}
}
</script>
</body>
</html>
javascript 缓动返回顶部案例的更多相关文章
- jQuery---小火箭返回顶部案例
小火箭返回顶部案例 1. 滚动页面,当页面距离顶部超出1000px,显示小火箭. 封装在scroll函数里,当前页面距离顶部为$(window).scrollTop >=1000 小火箭显示和隐 ...
- JS——BOM操作(点击按钮返回顶部案例:scrollTop的用法)
点击按钮返回顶部案例: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta chars ...
- JavaScript 缓动效果
Math.easeout = function (A, B, rate, callback) { if (A == B || typeof A != 'number') { return; } B = ...
- javascript+JQuery实现返回顶部功能
很多网站上都有返回顶部的效果,本文阐述如何使用jquery实现返回顶部按钮. 首先需要在顶部添加如下html元素: <p id="back-to-top"><a ...
- 【JavaScript&jQuery】返回顶部
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- javascript实现网页返回顶部功能
在浏览网页时,我们一般是拖动滚动条向下滑动,浏览下面的内容,当页面超过单页时,右下角会出现一个回到顶部的图标,有些网站这个图标一直显示在右下角的. 有些网站使用锚链接来实现页面内容的跳转,但这种效果的 ...
- JavaScript实现减速返回顶部
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js网页返回顶部和楼层跳跃的实现原理
这是简单的效果图. (实现楼层间的跳跃,主要依靠的是 window.scrollTo(x,y)方法 ,将浏览器的可见区域移动到指定的x,y坐标上.) 说楼层跳跃前,先温习下,一般网页在高度较大时, ...
- 渲染优化 之fixed与返回顶部 以及开启GPU Hack
fixed元素,常见网站右侧出现一个返回顶部的按钮,滚动的时候,会发现返回顶部这个区域在不停的进行重绘,而返回顶部是position:fixed定位的.这也解释了为什么fixed定位是最耗性能的属性之 ...
随机推荐
- Maven相关问题解决.docx
1. 问题 2. 原因 出现.lastUpdated结尾的文件的原因:由于网络原因没有将Maven的依赖下载完整,导致. 解决方案: 1.删除所有以.lastUpdate结尾的文件 a)1.切换到ma ...
- Tomcat7注册为Linux服务
https://www.openprogrammer.info/2015/06/14/how-to-install-java-8-and-tomcat-8-on-centos-6-as-service ...
- ping命令返回的TTL值判断操作系统
通过简单的ping命令,查看返回的TTL值来判断对方的操作系统 生存时间(TTL)是IP分组中的一个值,网络中的路由器通过察看这个值就可以判断这个IP分组是不是已经在网络中停留了很久,进而决定是否要将 ...
- delphi创建动态菜单
1.动态生成菜单项 varFirstItem: TMenuItem;SecondItem: TMenuItem; begin FirstItem := TMenuItem.Create(Self); ...
- js簡介
js是腳本語言: js適用於服務器.pc.平板電腦.智能手機: js是最流行的編程語言,使用與html和前段: js是一種輕量級編程語言: js能被所有的現代瀏覽器執行: js和java是完全不同的編 ...
- Json Self referencing loop detected
Self referencing loop detected......的错误 解决方案: 1 增加 [JsonIgnore] 过滤关联,使其不参与序列化. 这个方法简单粗暴.但是你就没办法获取关 ...
- linux异常处理:selinux配置错误导致无法重启
点击返回自学Linux集锦 linux异常处理:selinux配置错误导致无法重启 一次linux无法重启异常记录: 当时第一反应就是梳理最近的配置变更,特别是能预知相关的就是selinux配置变更. ...
- 自学工业控制网络之路1.5-典型的现场总线介绍DeviceNet
返回 自学工业控制网络之路 自学工业控制网络之路1.5-典型的现场总线介绍DeviceNet 2002年10月DeviceNet被批准为中国国家标准GB/T18858.3-2002,并于2003.4. ...
- 【BZOJ4591】[SHOI2015]超能粒子炮·改 (卢卡斯定理)
[BZOJ4591][SHOI2015]超能粒子炮·改 (卢卡斯定理) 题面 BZOJ 洛谷 题解 感天动地!终于不是拓展卢卡斯了!我看到了一个模数,它是质数!!! 看着这个东西就感觉可以递归处理. ...
- BZOJ 3503 [CQOI2014]和谐矩阵
题目链接 BZOJ 3503 题解 没想到--直接用暴力的\(O((nm)^3)\)算法,居然能过?! 高斯消元解异或方程组. #include <cstdio> #include < ...