js如何监听滚动条滚动事件,使得某个标签内容始终位于同一位置

小知识点,废话不多说,直接上代码

css:

[html]  view plain  copy
  1. <pre name="code" class="css"><style>  
  2. #anchor:{  
  3. position:absulate;  
  4. top:40%;  
  5. left:40%;  
  6. width:100px;  
  7. height:100px;  
  8. background-color:red;  
  9. }  
  10. </style></pre><br>  


js:

[html]  view plain  copy
  1. <pre name="code" class="javascript">var auchorTop = $("#anchor").css("top");  
  2.         auchorTop = Number(auchorTop.substring(0, anchorTop.indexOf("p")));  //首先在监听器外部记录某id=anchor的标签的初始位置  
  3.         window.onscroll = function () {  
  4.             var top = document.documentElement.scrollTop || document.body.scrollTop;  
  5.             $("#anchor").css("top", anchorTop + top + "px");  
  6.         };</pre>  

html:

[html]  view plain  copy
  1. <div id="anchor"></div>  

在window.onscroll上即可添加滚动条滚动事件,在监听函数中的top=document.documentElement.scrollTop||document.body.scrollTop;之所以这么写,就是避免不同浏览器的兼容性,这里我测试了chrom和ff浏览器,前者支持document.body.scrollTop这个属性,后者支持另一个属性,因此可以用‘||’符号糅合这两个属性,兼容不同浏览器。anchorTop就是目标的开始与浏览器顶部的距离,这里还需要注意的是’#anchor‘这个标签的position:absulate,否则top属性值总是是0px。

当滚动条滚动时,top值变化,随后将'#anchor'的初始top值加上滚动条的top值,即可保持内容始终处于同一位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值