去把bilibili的返回顶点锚点扒了下来

今天闲来无事看着刷着bilibili对那锚点标记觊觎已久,下决心将其收为己用,遂动手.

个人主推Firefox+firebug查看网页代码.我用的是夜壶(nightly),就火狐的每日更新版(建议不用,有时一日三更重启非常蛋疼).

网页代码,css和图片容易弄,哪里想要点哪里,左边是代码,右边是css和其他,背景图的话,右键路径在新页面打开保存就行.

主要是绑定的javascript事件麻烦.楼主一开始傻BB就对着那个锚点的divid找啊找,找到了一些但死活找不到事件.后来firebug会用了就简单多了.点击标签绑定的是goTop函数,在firebug的控制栏里输入"goTop",然后点"RUN",那个函数就会出现了,找到之后还可以右键美化源代码,方便复制过去.输"goTop()"的话是执行.不一样的.

bilibili的锚点是挺有趣的, 首先其位置设置的不错,会根据元素在当前视口的相对偏移设置,其次是它让人流氓滚,在点了页面开始调用函数之后一旦你往下滚轮它还是会用生命滚到页首,直到完全触顶为止.

 1 <html xmlns="http://www.w3.org/1999/xhtml">

 2  < head >
 3      < meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"   />
 4      < title ></ title >
 5      < script  src ="../Scripts/jquery-1.10.2.min.js" ></ script >
 6      < script >
 7         $( function () {
 8             $('body').append('<div id="gotop" οnclick="goTop();"></div>');
 9             $(window).scroll( function () {
10                 300 < $( this).scrollTop() ?
11                 ($('#gotop').show(),
12                 $('#gotop').css('left', $('.z').offset().left + $('.z').width() + 20),
13                 $('#gotop').css('top', $(window).height() - 300))
14                 : $('#gotop').hide()
15             });
16             $(window).resize( function () {
17                 $('#gotop').css('left', $('.z').offset().left + $('.z').width() + 20)
18             })
19         });
20          function goTop(u, t, r) {
21              var scrollActivate = !0;
22              if (scrollActivate) {
23                 u = u || 0.1;
24                 t = t || 16;
25                  var s = 0,
26                 q = 0,
27                 o = 0,
28                 p = 0,
29                 n = 0,
30                 j = 0;
31                 document.documentElement && (s = document.documentElement.scrollLeft || 0, q = document.documentElement.scrollTop || 0);
32                 document.body && (o = document.body.scrollLeft || 0, p = document.body.scrollTop || 0);
33                 n = window.scrollX || 0;
34                 j = window.scrollY || 0;
35                 s = Math.max(s, Math.max(o, n));
36                 q = Math.max(q, Math.max(p, j));
37                 p = 1 + u;
38                 window.scrollTo(Math.floor(s / p), Math.floor(q / p));
39                 0 < s || 0 < q ? window.setTimeout('goTop(' + u + ', ' + t + ')', t) : 'undefined' !=  typeof r && r()
40             }  else {
41                 scrollActivate = !0
42             }
43         }
44      </ script >
45      < style >
46          #gotop:hover {
47              background-position:  0px -116px;
48          }
49 
50          #gotop {
51              width:  29px;
52              height:  106px;
53              position:  fixed;
54              display:  none;
55              cursor:  pointer;
56              background:  url('go_to_top.png') no-repeat scroll 0px 0px transparent;
57          }
58       </ style >
59  </ head >
60  < body >
61      < div  class ="z"  style ="border: 1px dashed; height: 2999px; width: 977px; margin: 0 auto;" >
62      </ div >
63  </ body >

64 </html> 

 

 http://static.hdslb.com/images/v2images/go_to_top.png

 

 

转载于:https://www.cnblogs.com/zeusro/p/3705426.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值