【转】js获取滚动条距离浏览器顶部,底部的高度,兼容ie和firefox
http://www.phpernote.com/javascript-function/755.html
获取窗口可视范围的高度
function getClientHeight(){ var clientHeight=0; if(document.body.clientHeight&&document.documentElement.clientHeight){ var clientHeight=(document.body.clientHeight<document.documentElement.clientHeight)?document.body.clientHeight:document.documentElement.clientHeight; }else{ var clientHeight=(document.body.clientHeight>document.documentElement.clientHeight)?document.body.clientHeight:document.documentElement.clientHeight; } return clientHeight; }
获取窗口滚动条高度
function getScrollTop(){ var scrollTop=0; if(document.documentElement&&document.documentElement.scrollTop){ scrollTop=document.documentElement.scrollTop; }else if(document.body){ scrollTop=document.body.scrollTop; } return scrollTop; }
获取文档内容实际高度
function getScrollHeight(){ return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight); }
滚动条距离浏览器顶部的高度 = 窗口滚动条高度;
滚动条距离浏览器底部的高度 = 文档(页面)内容实际高度 - 滚动条距离浏览器顶部的高度 - 窗口可视范围的高度;
完整代码如下:
<html xmlns="http://www.phpernote.com/javascript-function/754.html"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>js获取滚动条距离浏览器顶部,底部的高度</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> <script type="text/javascript"> //取窗口可视范围的高度 function getClientHeight(){ var clientHeight=0; if(document.body.clientHeight&&document.documentElement.clientHeight){ var clientHeight=(document.body.clientHeight<document.documentElement.clientHeight)?document.body.clientHeight:document.documentElement.clientHeight; }else{ var clientHeight=(document.body.clientHeight>document.documentElement.clientHeight)?document.body.clientHeight:document.documentElement.clientHeight; } return clientHeight; } //取窗口滚动条高度 function getScrollTop(){ var scrollTop=0; if(document.documentElement&&document.documentElement.scrollTop){ scrollTop=document.documentElement.scrollTop; }else if(document.body){ scrollTop=document.body.scrollTop; } return scrollTop; } //取文档内容实际高度 function getScrollHeight(){ return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight); } window.onscroll=function(){ var height=getClientHeight(); var theight=getScrollTop(); var rheight=getScrollHeight(); var bheight=rheight-theight-height; document.getElementById('show').innerHTML='此时浏览器可见区域高度为:'+height+'<br />此时文档内容实际高度为:'+rheight+'<br />此时滚动条距离顶部的高度为:'+theight+'<br />此时滚动条距离底部的高度为:'+bheight; } function fixDiv(div_id,offsetTop){ var offsetTop=arguments[1]?arguments[1]:0; var Obj=$('#'+div_id); var ObjTop=Obj.offset().top; var isIE6=$.browser.msie && $.browser.version == '6.0'; if(isIE6){ $(window).scroll(function(){ if($(window).scrollTop()<=ObjTop){ Obj.css({ 'position':'relative', 'top':0 }); }else{ Obj.css({ 'position':'absolute', 'top':$(window).scrollTop()+offsetTop+'px', 'z-index':1 }); } }); }else{ $(window).scroll(function(){ if($(window).scrollTop()<=ObjTop){ Obj.css({ 'position':'relative', 'top':0 }); }else{ Obj.css({ 'position':'fixed', 'top':0+offsetTop+'px', 'z-index':1 }); } }); } } $(function(){fixDiv('show',5);}); </script> </head> <body> <div style="height:500px;"></div> <div>http://www.phpernote.com/jquery/251.html</div> <div id="show"></div> <div style="height:2000px;"></div> </body> </html>
- 学习本是一个不断抄袭、模仿、练习、创新的过程。
- 虽然,园中已有本人无法超越的同主题博文,为什么还是要写。
- 对于自己,博文只是总结。在总结的过程发现问题,解决问题。
- 对于他人,在此过程如果还能附带帮助他人,那就再好不过了。
- 由于博主能力有限,文中可能存在描述不正确,欢迎指正、补充!
- 感谢您的阅读。如果文章对您有用,那么请轻轻点个赞,以资鼓励。
- 工控物联Q群:995475200