1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 用 Javascript 获取页面大小 窗口大小和滚动条位置

用 Javascript 获取页面大小 窗口大小和滚动条位置

时间:2023-07-26 14:41:37

相关推荐

用 Javascript 获取页面大小 窗口大小和滚动条位置

一,window对象的属性scrollMaxX,scrollMaxY:

传回的是可卷动的最大长度,其值为整数,单位为像素。限Firefox使用。 文件的全宽 = innerWidth + scrollMaxX 文件的全高 = innerHeight + scrollMaxY 二。文档页面的大小,包括滚动条未显示的部分。 function getScrollPageSize(){ var xScroll,yScroll; if(windows.innerHeight && window.scrollMaxY){ //针对Friefox xScroll = windows.innerWidth + window.scrollMaxX; yScroll = windows.innerHeight + window.scrollMaxY; }else if(document.body.scrollHeight > document.body.offsetHeight){ //all but firefox and IE Mac xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight; }else if(document.body){ xScroll = document.body.offsetWidth; yScroll = document.body.offsetHeight; } return {"xScroll":xScroll,"yScroll":yScroll}; } 三。展示窗口页面的大小:(不是浏览器窗口本身) function getWinSize(){ var pageWidth = windows.innerWidth, pageHeight = windows.innerHeight; if(typeof pageWidth != "number"){ if(patMode == "CSS1Compat"){ //IE,Firefox,Safari,Opera,Chrome pageWidth = document.documentElement.clientWidth; pageHeight = document.documentElement.clientHeight; }else{ //IE6的混杂模式下 pageWidth = document.body.clientWidth; pageHeight = document.body.clientHeight; } } return {"pageWidth":pageWidth,"pageHeight":pageHeight}; } 四。获得滚动条位置的 Javascript 函数 方法一: function scrollPos(oDocument){oDocument = oDocument || document; var dd = oDocument.documentElement; var db = oDocument.body; return {top: Math.max(window.pageYOffset||0, dd.scrollTop, db.scrollTop), left: Math.max(window.pageXOffset||0, dd.scrollLeft, db.scrollLeft) }; } 方法二: function f_clientWidth() { return f_filterResults ( windows.innerWidth ? windows.innerWidth : 0, document.documentElement ? document.documentElement.clientWidth : 0, document.body ? document.body.clientWidth : 0 ); } function f_clientHeight() { return f_filterResults ( windows.innerHeight ? windows.innerHeight : 0, document.documentElement ? document.documentElement.clientHeight : 0, document.body ? document.body.clientHeight : 0 ); } function f_scrollLeft() { return f_filterResults ( window.pageXOffset ? window.pageXOffset : 0, document.documentElement ? document.documentElement.scrollLeft : 0, document.body ? document.body.scrollLeft : 0 ); } function f_scrollTop() { return f_filterResults ( window.pageYOffset ? window.pageYOffset : 0, document.documentElement ? document.documentElement.scrollTop : 0, document.body ? document.body.scrollTop : 0 ); } function f_filterResults(n_win, n_docel, n_body) { var n_result = n_win ? n_win : 0; if (n_docel && (!n_result || (n_result > n_docel))) n_result = n_docel; return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result; } 这个方法的兼容性是最好的,能兼容所有的浏览器和平台。 方法三: if (typeof window.pageYOffset != 'undefined') { scrollPosTop = window.pageYOffset;

scrollPosLeft = window.pageXOffset;

docWidth = windows.innerWidth;

docHeight = windows.innerHeight;

} else if (typeof patMode != 'undefined' && patMode != 'BackCompat') {

scrollPosTop = document.documentElement.scrollTop;

scrollPosLeft = document.documentElement.scrollLeft;

docWidth = document.documentElement.clientWidth;

docHeight = document.documentElement.clientHeight;

} else if (typeof document.body != 'undefined') {

scrollPosTop = document.body.scrollTop;

scrollPosLeft = document.body.scrollLeft;

docWidth = document.body.clientWidth;

docHeight = document.body.clientHeight;

} 这种方法利用到patMode属性,当值为BackCompat时为html,即没有DOCTYPE,当值为CSS1Compat时为有DOCTYPE的标准模式。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。