首页 > 开发 > CSS > 正文

网页制作技巧:获取页面可视区域的高度

2024-07-11 09:02:22
字体:
来源:转载
供稿:网友

武林网(www.vevb.com)文章简介:获取页面可视区域高度,获取页面高度,获取滚动条滚动上去的页面高度.

function getWH(){

var wh = {};

"Height Width".replace(/[^/s]+/g,function(a){

var b = a.toLowerCase();

wh[b]=window["inner".concat(a)]||

document.compatMode ==="CSS1Compat" && document.documentElement["client".concat(a)]

|| document.body["client".concat(a)];

});

return wh;

}

了解两个名词:BackCompat 标准兼容模式关闭(怪异模式)

CSS1Compat 标准兼容模式开启

这个方法为获取页面可视区域的高度,普通情况下,window.innerHeight 即可获取,如果是正常模式,并且有clientHeight的情况下, document.documentElement.clientHeight 获取的就是可视区域高度。在怪异模式下,是使用document.body获取。


function getBodyWH(){

var wh = {};

"Height Width".replace(/[^/s]+/g,function(a){

var b = a.toLowerCase();

wh[b]=document.compatMode ==="CSS1Compat" && document.documentElement["scroll".concat(a)]

|| document.body["scroll".concat(a)];

});

return wh;

}

这个为获取页面的高度,用于iframe的自适应时候获取。


var ss = {};

ss.scrollTopFn = function(arg){

var a = navigator.userAgent.toLowerCase().indexof("webkit");//判断webkit内核

var scrollTop;

if(a>-1||document.compatMode =="BackCompat"){

this.scrollTopFn =function(arg){

if(typeof arg == 'number'){

document.body.scrollTop = arg;

}else{

return document.body.scrollTop;

}

}

}else{

this.scrollTopFn =function(arg){

if(typeof arg == 'number'){

document.documentElement.scrollTop = arg;

}else{

return document.documentElement.scrollTop;

}

}

}

return this.scrollTopFn.apply(this,arguments);

}

这个返回scrollTop 即滚动上去的页面的高度,因为在webkit内核下渲染的都是使用body,所以和上面两个判断是不一样的。在怪异模式下同样是用body。其他情况都是用documentElment。

这些玩意蛮烦的,今天弄了一天才总结出来了这么些,网上查找也没找到特别标准的说法,就一个个自己试了下,写了几个函数以供以后使用。有人如果有更好的判断方法的话,还望告知,谢谢!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表