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


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

« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3