javascript返回顶部效果(自写代码)

现在很多网站都用到了返回顶部的效果,当然懒的话也可以直接 a 链接链到 #,这样也可以达到效果。今天抽空用原生 javascript 写了个,由于本人水平有限,如有问题请指出。
html 代码


代码如下:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>js-回到顶部</title>
<style type="text/css">
*{margin:0;padding:0;}
.wrapper{width:960px;margin-left:auto;margin-right:auto;}
p{margin:10px;line-height:30px;}
#top{position:fixed;right:130px;bottom:50px;background:gray;padding:5px;display:block;}
</style>
</head>
<body>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<p>“记事本”是一个用来创建简单的文档的基本的文本编辑器。“记事本”最常用来查看或编辑文本 (.txt) 文件,但是许多用户发现“记事本”是创建网页的简单工具。</p>
<p>因为“记事本”仅支持很基本的格式,所以您不能在需要保持纯文本的文档中偶尔保存特殊格式。因为特殊字符或其他格式不能在所发布的网页上显示,否则可能导致错误,所以,在为网页创建 HTML 文档时它特别有用。</p>
<p>可以将记事本文件保存为 Unicode、ANSI、UTF-8 或高位在前的 Unicode 格式。当使用不同字符集的文档时,这些格式可以向您提供更大的灵活性。</p>
<a href="javascript:;" id="top">回到顶部</a>
</body>
</html>
<script type="text/javascript" src="js/toTop.js"></script>
<script type="text/javascript">
window.onload = function(){
toTop('top',false);
}
</script>

toTop.js 代码


代码如下:

//第一个参数是按钮id;第二个参数是一个布尔值,true是一直显示按钮,false是当滚动距离不为0时,显示按钮
function toTop(id,show){
var oTop = document.getElementById(id);
var bShow = show;
if(!bShow){
oTop.style.display = 'none';
setTimeout(btnShow,50);
}
oTop.onclick = scrollToTop;
function scrollToTop(){
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
var iSpeed = Math.floor(-scrollTop/2);
if(scrollTop <= 0){
if(!bShow){
oTop.style.display = 'none';
}
return;
}
document.documentElement.scrollTop = document.body.scrollTop = scrollTop + iSpeed;
setTimeout(arguments.callee,50);
}
function btnShow(){
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
if(scrollTop <= 0 ){
oTop.style.display = 'none';
}else{
oTop.style.display = 'block';
}
setTimeout(arguments.callee,50);
}
}

注意
ie6 下 position:fixed 无效,具体兼容请点击浏览器的各种bug。另外以前写过一篇css解决ie6下position:fixed失效,并不支持该效果。
PS:这是本人闲着无聊,通过自己所学的 javascript 知识,随意写的一些效果。

第二种方法
很多网页在下方都会放置一个“返回顶部”按钮,尤其是页面底部没有导航的网页,这样可以帮助访客重新找到导航或者重温一遍广告(想得真美)。随着近几年来 JavaScript 的应用日渐广泛,滑动效果无处不在,于是我也跟跟风,将返回顶部功能做成了滑动效果。后来为了更贴合物理特征, 改造做成了减速的滑动效果。

首先说一下原理吧,我们会获取滚动条到页面顶部的距离,然后上移一定的距离;再获取滚动条到页面顶部的距离,上移一定的距离(比上一次小一点);以此类推 ...
先上代码吧:


代码如下:

<script type="text/javascript">
/**
* 回到页面顶部
* @param acceleration 加速度
* @param time 时间间隔 (毫秒)
**/
function goTop(acceleration, time) {
acceleration = acceleration || 0.1;
time = time || 16;
var x1 = 0;
var y1 = 0;
var x2 = 0;
var y2 = 0;
var x3 = 0;
var y3 = 0;
if (document.documentElement) {
x1 = document.documentElement.scrollLeft || 0;
y1 = document.documentElement.scrollTop || 0;
}
if (document.body) {
x2 = document.body.scrollLeft || 0;
y2 = document.body.scrollTop || 0;
}
var x3 = window.scrollX || 0;
var y3 = window.scrollY || 0;
// 滚动条到页面顶部的水平距离
var x = Math.max(x1, Math.max(x2, x3));
// 滚动条到页面顶部的垂直距离
var y = Math.max(y1, Math.max(y2, y3));
// 滚动距离 = 目前距离 / 速度, 因为距离原来越小, 速度是大于 1 的数, 所以滚动距离会越来越小
var speed = 1 + acceleration;
window.scrollTo(Math.floor(x / speed), Math.floor(y / speed));
// 如果距离不为零, 继续调用迭代本函数
if(x > 0 || y > 0) {
var invokeFunction = "goTop(" + acceleration + ", " + time + ")";
window.setTimeout(invokeFunction, time);
}
}
</script>

document.documentElement.scrollTop, document.body.scrollTop, window.scrollY 其实都是一样的,但它们只在某些浏览器中起作用。至于那哪个在哪些浏览器起作用可以自己调试一下。
如何使用?


代码如下:

<a href="#" onclick="goTop();return false;">TOP</a>

(0)

相关推荐

  • jQuery实现返回顶部功能适合不支持js的浏览器

    很多网站上都有返回顶部的效果,本文阐述如何使用jquery实现返回顶部按钮. 首先需要在顶部添加如下html元素: <p id="back-to-top"><a href="#top" rel="external nofollow" ><span></span>返回顶部</a></p> 其中a标签指向锚点top,可以在顶部防止一个<a name="top&qu

  • js实现返回顶部效果

    话不多说,请看代码: <!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> <meta http-equiv=&qu

  • js+JQuery返回顶部功能如何实现

    很多网站上都有返回顶部的效果,本文阐述如何使用jquery实现返回顶部按钮. 首先需要在顶部添加如下html元素: <p id="back-to-top"><a href="#top"><span></span>返回顶部</a></p>其中a标签指向锚点top,可以在顶部防止一个<a name="top"></a>的锚点,这样在浏览器不支持js时也可以

  • js简单的点击返回顶部效果实现方法

    本文实例讲述了js简单的点击返回顶部效果实现方法.分享给大家供大家参考.具体分析如下: 当页面特别长的时候,用户想回到页面顶部,必须得滚动好几次滚动键才能回到顶部,如果在页面右下角有个"返回顶部"的按钮,用户点击一下,就可以回到顶部,对于用户来说,是一个比较好的体验. 实现原理:当页面加载的时候,把元素定位到页面的右下角,当页面滚动时,元素一直位于右下角,当用户点击的时候,页面回到顶部. 要点一:document.documentElement.clientWidth || docum

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

    博客园中很多博友的博客中在Page右下角都有个图标,不论屏幕怎么拉伸,都始终停留在右下角.点击后页面置顶.后面想想写一个Demo来实现这种效果吧. 一. 图标右下角固定. 1.SS 里面提供了4中布局方式. 其中fixed表示绝对定位元素.所以我们选择使用fixed来实现图标固定. absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位. 元素的位置通过 "left", "top", "right" 以及 &q

  • JS返回顶部实例代码

    本文实例为大家分享了JS返回顶部实例代码,供大家参考,具体内容如下 html/css部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="返回顶部效果.js"></script> <style&g

  • 一个简单的弹性返回顶部JS代码实现介绍

    昨天做了一个这样的功能,贴出来参考. HTML/JS/CSS代码: 复制代码 代码如下: <!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"> &l

  • javascript简单实现跟随滚动条漂浮的返回顶部按钮效果

    本文实例讲述了javascript简单实现跟随滚动条漂浮的返回顶部按钮效果.分享给大家供大家参考,具体如下: 比较优秀的一款超过一屏高度才显示的,跟随滚动条漂浮的返回顶部按钮特效代码. 运行效果如下图所示: 完整实例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quo

  • js返回顶部实例分享

    话不多说,请看实例 1.HTML结构 <div class="return_top"></div> 2.css样式 .return_top{ width: 50px; height: 50px; background: url(../images/lanren.gif) no-repeat center #FF8D16; position:fixed; right: 30px; bottom: 30px; display: none; cursor: point

  • 原生js实现返回顶部缓冲效果

    运行原理 通过定时器30毫秒执行一次滚动条上升,每次上升的高度为当前高度的80%,这样就达到了上升缓冲的动画效果. 判断当滚动条高度超过一屏时,按钮显示,默认隐藏 知识要点 scrollTop//获取滚动条高度 需要写兼容 clientHeight//可视窗口高度 需要写兼容 setInterval//定时器 window.onscroll//滚动触发事件 完整代码 <!DOCTYPE html> <html lang="en"> <head> &l

随机推荐