JavaScript 实现页面滚动到顶部的效果

在几个月前,我就已经把这个功能实现了,之前这个效果是由 HTML、css、JavaScript 一块儿写的,并且当时留下了一个问题:如何禁止短时间内多次点击 div 滑块儿,防止出现页面出现闪动情况。

利用昨天晚上的一个多小时把这个重写了一下,并且把 HTML 和 css 都直接在 JavaScript 中进行表达。

使用方法

把 totop.js 直接用 script 标签引入 HTML 页面。
或者,直接把 totop.js 中的代码复制粘贴于浏览器控制端,即可在当前页面中看到效果。
源代码

我已经寄存在GitHub上面了, 点这里 。

(function(){
// 使用JavaScript为页面添加返回顶部滑块儿
vardiv =document.createElement("div");
 div.id = "to-top";
 div.style.cssText = ` display: none;
 position: fixed;
 bottom: 20px;
 right: 20px;
 z-index: 100;
 cursor: pointer;
 width: 40px;
 height: 40px;
 line-height: 40px;
 border-radius: 3px;
 background: #666;
 text-align: center;
 font-size: 25px;
 `;
// 为了方便,我这里直接使用HTML向上箭头的实体
 div.innerHTML = "↑";
document.body.appendChild(div);

// 返回顶部 动画实现
// animationToTop() 默认有2个参数
// step 设置滚动函数中每次向上滚动的像素值,默认为 5像素
// delay 设置每次调用滚动函数的时间间隔,默认为 20ms
functionanimationToTop(step = 5, delay = 20){
varintervalID;
 intervalID = window.setInterval(roll, delay);// 计时器
varlength =window.scrollY;

// 向上滚动函数
functionroll(){
window.scrollTo(0, length -= (step++));
if(length <=0) {
 clearInterval(intervalID);
vartop =document.getElementById("to-top");
 top.style.pointerEvents = "auto";
 top = null;
 }
 }
 }

// 添加点击事件
vartop =document.getElementById("to-top");
 top.onclick = function(){
vartop =document.getElementById("to-top");
 top.style.pointerEvents = "none";
 top = null;
 animationToTop();
 };

// 在合适的时间 显示 返回顶部按钮
document.addEventListener("scroll",function(){
vartop =document.getElementById("to-top");
if(window.scrollY <document.body.clientHeight /4) {
 top.style.display = "none";
 } else{
 top.style.display = "block";
 }
 top = null;
 });

})();

时间: 2024-11-23 20:43:10

JavaScript 实现页面滚动到顶部的效果的相关文章

Javascript实现神奇的页面滚动控制

javascript|控制|页面 首先,当我移动鼠标到这个指示器上面时,页面就会自动向上滚动,当移动鼠标到指示器下面时,页面就会自动向下滚动.我们不得不感叹新技术带来的神奇!它让我们费了更少的力气,完成同等的工作.但是,是否能在HTML页面上制作这样一个指示器呢?答案当然是:完全可以!请跟我来.  实现思路    1.首先,准备好2个图形文件,一个代表向上,另一个代表向下.     2.然后,进行页面布局,我们可以将这个指示器图标放在你想要的任意位置,这里我们假设它位于当前窗口的右下部.   

基于jquery平滑滚动“返回顶部”效果

 代码如下 复制代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>点击平滑滚动&quo

基于jquery 返回顶部按钮效果代码

在 IE6 中, 因为不支持浏览器跟随功能, 所以通过跟随页面滚动来虚拟跟随效果, 在滚动页面的时候隐藏回到顶部按钮, 滚动停止时再显示按钮. 参数描述 pageWidth: 页面宽度 (正整数), 如图中 A 所示. nodeId: 回到顶部按钮的 ID (字符串). nodeWidth: 回到顶部按钮的宽度 (正整数), 如图中 B 所示. distanceToBottom: 回到顶部按钮到页面底部的距离 (正整数), 如图中 C 所示. hideRegionHeight: 不显示回到顶部按

JS实现回到页面顶部动画效果的简单实例_javascript技巧

最近在模仿各大网站写页面样式和交互,发现好多都有回到顶部的需要,所以写了一下js,记录下来. 发现还可以添加从快到慢的动画效果和随时下拉滚动条停止滚动的功能, 参考了imooc上相关课程,最终实现JS代码如下: //页面加载后触发 window.onload = function(){ var btn = document.getElementById('btn'); var timer = null; var isTop = true; //获取页面可视区高度 var clientHeight

javascript改变position值实现菜单滚动至顶部后固定_javascript技巧

现在很多网站都有这样的一个效果,当页面滚动到一定高度时,菜单栏会固定在页面顶部.其实就是改变 position 的值. html 代码: 复制代码 代码如下: <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" t

jQuery创建平滑的页面滚动(顶部或底部)_jquery

在这篇文章中,我将通过本教程向您展示了如何创建一个平滑的滚动效果,使用jQuery.让您可以滚动到你的网页的顶部或底部 它是如何工作的 首先,加载jquery库在</ head>标签结束前: 复制代码 代码如下: <script type="text/javascript" src="http://demo.jb51.net/jslib/jquery/jquery1.3.2.js"></script>jQuery滚动到底部: 链接

jquery 固定菜单页面滚动效果

在一个单页面设置一个主菜单,当页面滚动时主菜单位置固定在页面窗口中不动,或左或右,或上或下.当单击菜单项时,页面滚动到菜单对应的内容区,当页面滚动到预定内容位置时,对应的菜单项变为当前选中样式. HTML 本例html来自本站文章:ScrollTo:平滑滚动到页面指定位置中的DEMO,我们在页面中的#main内放置一个主菜单ul.nav,并对应每个菜单项的内容区,我们会发现内容区的id对应菜单项的class,接下来你会发现它的作用.  代码如下 复制代码 <div id="main&quo

javascript实现博客园页面右下角返回顶部按钮

 这篇文章主要介绍了使用javascript实现博客园页面右下角返回顶部按钮的思路及源码,非常不错,这里推荐给小伙伴们     博客园中很多博友的博客中在Page右下角都有个图标,不论屏幕怎么拉伸,都始终停留在右下角.点击后页面置顶.后面想想写一个Demo来实现这种效果吧. 一. 图标右下角固定. 1.SS 里面提供了4中布局方式. 其中fixed表示绝对定位元素.所以我们选择使用fixed来实现图标固定.   absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进

jQuery实现div浮动层跟随页面滚动效果

 这篇文章主要介绍了jQuery实现div浮动层跟随页面滚动效果,需要的朋友可以参考下  代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml"