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


Posted in Javascript onJanuary 24, 2014

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

css:

<pre name="code" class="css"><style> 
#anchor:{ 
position:absulate; 
top:40%; 
left:40%; 
width:100px; 
height:100px; 
background-color:red; 
} 
</style></pre><br>

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

html:
<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值,即可保持内容始终处于同一位置。

Javascript 相关文章推荐
一个加载js文件的小脚本
Jun 28 Javascript
javascript 学习笔记(八)javascript对象
Apr 12 Javascript
javascript中为某个元素指定事件的三种方式
Aug 07 Javascript
jQuery中[attribute]选择器用法实例
Dec 31 Javascript
Jquery实时监听input value的实例
Jan 26 Javascript
Javascript中的async awai的用法
May 17 Javascript
vue-cli webpack 开发环境跨域详解
May 18 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
Apr 20 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
May 22 jQuery
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 Javascript
Node.js API详解之 util模块用法实例分析
May 09 Javascript
vue组件入门知识全梳理
Sep 21 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
Jan 24 #Javascript
JS实现点击链接取消跳转效果的方法
Jan 24 #Javascript
js关于字符长度限制的问题示例探讨
Jan 24 #Javascript
JS方法调用括号的问题探讨
Jan 24 #Javascript
Array栈方法和队列方法的特点说明
Jan 24 #Javascript
js sort 二维数组排序的用法小结
Jan 24 #Javascript
js二维数组排序的简单示例代码
Jan 24 #Javascript
You might like
PHP开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
php上传文件中文文件名乱码的解决方法
2013/11/01 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
PHP实现的只保留字符串首尾字符功能示例【隐藏部分字符串】
2019/03/11 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
解决js正则匹配换行问题实现代码
2012/12/10 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
关于JS中setTimeout()无法调用带参函数问题的解决方法
2016/06/21 Javascript
原生js实现网易轮播图效果
2020/04/10 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
js实现多图和单图上传显示
2019/12/18 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
[43:41]VP vs RNG 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
python中时间模块的基本使用教程
2019/05/14 Python
python实现的读取网页并分词功能示例
2019/10/29 Python
pandas中的数据去重处理的实现方法
2020/02/10 Python
python logging通过json文件配置的步骤
2020/04/27 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
高中毕业自我评价
2014/02/08 职场文书
施工质量承诺书范文
2014/05/30 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
企业党员个人自我评价
2014/09/20 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
python opencv通过按键采集图片源码
2021/05/20 Python
世界十大评分最高的动漫,CLANNAD上榜,第八赚足人们眼泪
2022/03/18 日漫
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python