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


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



相关阅读:
Oracle数据库Decode()函数的使用方法
关于超链接的一些问题
雨哲浅谈关于防采集而不影响收录内容篇
UrlReWriter 使用经验小结
asp.net 权限管理分析
PHP注释查看器
SQL Server下几个危险的扩展存储过程
PJBlog扩展代码:利用Cookie给回头用户问候
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
初探OpenOffice.org 3.1
PHP程序员一般都忽略了的几点精华
WordPress安装图解教程
Math对象应用详解
编写PHP代码的过程中养成的良好习惯
快速导航

Copyright © 2016 phpStudy | 皖ICP备18014864号-4