js返回页面顶部
第一次写博客,不太专业,废话不多说,直接上自己早上做的东东。有不足之处,希望指点。
css:
body{counter-reset: p;}
p{width: 100px;margin: 20px 0;font: normal 40px/1.5 Arial;text-align: center;border: 1px solid #ccc;}
p:before{content: counter(p);counter-increment: p;}
.scrollTop,.scrollBottom{position: fixed;right: 30px;width: 40px;height: 40px;border: 2px solid #1FA879;border-radius: 5px;cursor: pointer;}
.scrollTop{bottom: 100px;}
.scrollBottom{bottom: 40px;}
.scrollTop:before,.scrollBottom:before{content: "";position: absolute;left: 9px;border: 11px solid transparent;}
.scrollTop:before{top: 3px;border-bottom-color: #1FA879;}
.scrollBottom:before{top: 15px;border-top-color: #1FA879;}
.scrollTop:hover,.scrollBottom:hover{background: #1FA879;}
.scrollTop:hover:before{border-bottom-color: #fff;}
.scrollBottom:hover:before{border-top-color: #fff;}
HTML:
<p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p></p> <div class="scrollTop" id="scrollTop"></div>
<div class="scrollBottom" id="scrollBottom"></div>
JavaScript:
<script>
(function () {
var top=document.getElementById("scrollTop"),
bottom=document.getElementById("scrollBottom"),
timerTop,timerBottom,timerMove,delayScroll=13,delayMove=23,rate=0.95; top.onclick=function () {
clear(timerTop,timerBottom);
timerTop=setInterval(function() {
if(setTop(getPos().st*rate)===0) clear(timerTop);
}, delayScroll);
}; bottom.onclick=function () {
clear(timerTop,timerBottom);
timerBottom=setInterval(function() {
var r=getPos(),_y=Math.ceil((r.sh-r.st-r.ch)*(1-rate));
if(setTop(_y+r.st)===r.st) clear(timerBottom);
}, delayScroll);
}; top.onmouseover=function () {
clear(timerMove);
timerMove=setInterval(function() {
scrollBy(0,-1);
if(getPos().st===0) clear(timerMove);
}, delayMove);
}; bottom.onmouseover=function () {
clear(timerMove);
timerMove=setInterval(function() {
scrollBy(0,1);
var r=getPos();
if(r.st===r.sh-r.ch) clear(timerMove);
}, delayMove);
}; top.onmouseout=bottom.onmouseout=function () {
clear(timerMove);
} function getPos() {
return {
sh:document.documentElement.scrollHeight,
ch:document.documentElement.clientHeight||document.body.clientHeight,
st:window.scrollY||document.documentElement.scrollTop||document.body.scrollTop
};
} function setTop(s) {
return document.documentElement.scrollTop=document.body.scrollTop=s;
} function clear() {
for (var i = 0; i < arguments.length; clearInterval(arguments[i]),i++);
}
})();
</script>
js返回页面顶部的更多相关文章
- HTML5商城开发五 实现返回页面顶部
本文内容主要是网上参考收集,介绍四种简单的返回页面顶部代码,可以使用简单的HTML锚标记,也可使用Javascript Scroll函数动态返回等等. 一.使用锚标记返回页面顶部 使用HTML锚标记最 ...
- 代码: 返回页面顶部 jquery
jquery代码: 返回页面顶部 <script type="text/javascript" src="http://cdn.bootcss.com/jquery ...
- react-router(v4) 路由跳转后返回页面顶部问题
遇到的问题 由A页面跳转到B页面,B页面停留在A页面的位置,没有返回到顶部. 问题分析 首先分析下出现此问题的原因: 在项目中使用的是 hashHistory,它是建立在 history 之上的,当路 ...
- js网页返回页面顶部的小方法
咳咳,在网页出现滚动条的时候,许多网站会在右下角出现一个图标,点击可以回到页面顶部 本文就记录下js实现代码: 1.在html页面body添加dom元素 <img src="toTop ...
- 解决点击a标签返回页面顶部的问题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- jquery实现返回页面顶部功能。
<p id="back-to-top"> <span></span> </p> <script type="text ...
- (转)解决点击a标签返回页面顶部的问题
本文转载至http://www.cnblogs.com/chenluomenggongzi/p/5950670.html 1 <!DOCTYPE html> 2 <html lang ...
- 解决点击空<a>标签返回页面顶部的问题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ASP.NET后台输出js大全,页面顶部、form表单中前面与后面、和UpdatePanel(ScriptManager、AJAX)输出JS
Response.Write 与 Page.ClientScript.RegisterStartupScript 与 Page.ClientScript.RegisterClientScriptB ...
随机推荐
- [转]SSH整合 简单的增删改查
Database 使用 Mysql , 建立User 表 CREATE TABLE `user` ( `id` int(11) NOT NULL, `firstName` varchar(20) ...
- hibernate使用原生SQL查询
以下是Demo测试Hibernate 原生SQL查询: import java.util.Iterator; import java.util.List; import java.util.Map; ...
- sqlserver 脚本 多条记录遍历
临时表方式实现多条记录遍历 declare @oper_cart_item_id bigint; declare @oper_cart_id bigint; declare @the_last_cha ...
- GUN C/C++ __attribute__ 用法 转
http://blog.csdn.net/mydo/article/details/3738336 GNUC的一大特色(却不被初学者所知)就是__attribute__机制.__attrib ...
- Matlab中如何读取.dat文件
处理movielens1M数据集 中间有个双冒号,直接用load的只读取第一列,这时候我们可以用dlmread(中间是l不是i),如下图,只需要提取1 3 5列就好了.
- 怎么查看和修改 MySQL 的最大连接数
通常,mysql的最大连接数默认是100, 最大可以达到16384.1.查看最大连接数:show variables like '%max_connections%';2.修改最大连接数方法一:修改配 ...
- linux gcc升级备忘录
1. 拉包 sudo wget http://mirrors.opencas.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.bz2 #如果以上给出的镜像不可用,也可以是使用h ...
- 使用nsswitch控制linux dns解析顺序
参考:1.DNS原理入门参考:http://www.ruanyifeng.com/blog/2016/06/dns.html 2.http://cn.linux.vbird.org/linux_ser ...
- c# 冒号:C#中两个冒号(::)的作用
global::System.Console.WriteLine(number); 冒号在什么地方用. 点是空间下类,表示下一层的意思? 这里面::前面是GAC的标示符global,用法比较特殊,和. ...
- [转]SSIS: Execute Package via Stored Procedure
本文转自:http://sqlblog.de/blog/2009/09/ssis-execute-package-via-stored-procedure/ There are two options ...