纯javascript 回到 顶部 实例

  很多网站都会采用瀑布式的加载模式,像qq空间加载好友动态,为了用户体验更好,很多网站会加上回到顶部的连接,但大多数网站都是一下子就回到了顶部,当然,这样有这样的好处,但是我是个比较喜欢很炫的东西的人,所以就比较喜欢滑动滚到顶上。直接上代码吧。

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5 <title>Insert title here</title>
 6 <script type="text/javascript">
 7 function goTop(acceleration, time) {
 8      acceleration = acceleration || 0.1;
 9      time = time || 16;
10      
11      var x1 = 0;
12      var y1 = 0;
13      var x2 = 0;
14      var y2 = 0;
15      var x3 = 0;
16      var y3 = 0;
17      
18      if (document.documentElement) {
19       x1 = document.documentElement.scrollLeft || 0;
20       y1 = document.documentElement.scrollTop || 0;
21      }
22      if (document.body) {
23       x2 = document.body.scrollLeft || 0;
24       y2 = document.body.scrollTop || 0;
25      }
26      var x3 = window.scrollX || 0;
27      var y3 = window.scrollY || 0;
28 
29 
30 
31 
32      
33      // 滚动条到页面顶部的水平距离
34      var x = Math.max(x1, Math.max(x2, x3));
35      // 滚动条到页面顶部的垂直距离
36      var y = Math.max(y1, Math.max(y2, y3));
37      
38      // 滚动距离 = 目前距离 / 速度, 因为距离原来越小, 速度是大于 1 的数, 所以滚动距离会越来越小
39      var speed = 1 + acceleration;
40      window.scrollTo(Math.floor(x / speed), Math.floor(y / speed));
41      
42      // 如果距离不为零, 继续调用迭代本函数
43      if(x > 0 || y > 0) {
44       var invokeFunction = "goTop(" + acceleration + ", " + time + ")";
45       window.setTimeout(invokeFunction, time);
46      }
47     }
48 </script>
49 </head>
50 <body>
51     1adfsssssssssssssssssssssssssssssssssssssssssssssssssss<br />
52     1<br />
53     1<br />1<br />
54     1<br />1<br />1<br />1<br />
55     1<br />1<br />1<br />1<br />
56     1<br />1<br />1<br />1<br />
57     1<br />1<br />1<br />1<br />
58     1<br />1<br />1<br />1<br />
59     1<br />1<br />1<br />1<br />
60     1<br />1<br />1<br />1<br />
61     1<br />1<br />1<br />1<br />
62     1<br />1<br />1<br />1<br />
63     1<br />1<br />1<br />1<br />
64     1<br />1<br />1<br />1<br />
65     1<br />1<br />1<br />1<br />
66     1<br />1<br />1<br />1<br />
67     1<br />1<br />1<br />1<br />
68     1<br />1<br />1<br />1<br />
69     1<br />1<br />1<br />1<br />
70     1<br />1<br />1<br />1<br />
71     1<br />1<br />1<br />1<br />
72     1<br />1<br />1<br />1<br />
73     1<br />1<br />1<br />1<br />
74     1<br />1<br />1<br />1<br />
75     1<br />1<br />
76     fdsfaddddddddddddddddddd
77     
78     <a href="javascript:;" onclick="goTop();return false;">TOP</a>
79 </body>
80 </html>

应该很简单吧,上面获取滚动条的位置,各个内核的获取方式不一样,这里就整合了一下。希望对大家有帮助。

为什么要写博客啊?因为失恋了 ,我好想她啊,只有让自己忙起来才会缓和一下,失恋好难受啊,下次我一定要好好抓住,打死都不分手了。话说我是被甩的啊。哎。。。

posted @ 2013-08-06 09:58  雷杰  阅读(534)  评论(13编辑  收藏  举报