Div+Css教程:获取页面可视区域的高度
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。