<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>js宽高的属性认识与应用</title>
</head>
<body>
<script type="text/javascript">
// IE9+ 以上浏览器支持
console.log('------------------------------');
console.log('浏览器窗口内容区宽度:', window.innerWidth);
console.log('浏览器窗口内容区高度:', window.innerHeight);
console.log('浏览器窗口宽度:', window.outerWidth);
console.log('浏览器窗口高度:', window.outerHeight);
console.log('------------------------------');
// 兼容性写法
window.innerWidth = window.innerWidth || document.documentElement.clientWidth;
window.innerHeight = window.innerHeight || document.documentElement.clientHeight;
console.log('--------------------------------');
console.log('屏幕像素宽:', screen.width);
console.log('屏幕像素高:', screen.height);
console.log('可用宽:', screen.availWidth);
console.log('可用高:', screen.availHeight);
// 兼容性写法 screenX(Y) Firefox的属性;
var screenLeft = window.screenLeft || screenX;
var screenTop = window.screenTop || screenY;
console.log('screenLeft:', window.screenLeft );
console.log('screenTop:', window.screenTop );
console.log('--------------------------------');
// JS中元素的可视宽高对应于CSS概念
document.body.clientWidth; // 相当于 padding-box的宽
document.body.clientHeight; // 相当于 padding-box的高
document.body.clientLeft; // 相当于取元素 border-left-width
document.body.clientTop; // 相当于取元素 border-top-width
document.body.offsetWidth; // 相当于 border-box的宽
document.body.offsetHeight; // 相当于 border-box的高
// 有兼容性
document.body.offsetLeft;
/* 1. IE8+及chrome中 offsetLeft = (offsetParent的margin-left) + (offsetParent的border-Left-width)
+ (offsetParent的padding-left) + (元素的margin-left);
2. Firefox中 offsetLeft = (offsetParent的margin-left) + (offsetParent的padding-left) + (元素的margin-left);
3. IE6,7中 offsetLeft = (offsetParent的padding-left) + (元素的margin-left);
综合以上问题,为了解决兼容性IE6,7和Firefox需注意让offsetParent 无margin, 无border
*/
document.body.offsetTop;
// JS滚动区域相关
document.body.scrollWidth;
/* 1. 元素宽度小于浏览器宽度 scrollWidth: 通常是浏览器窗口的内容区宽度;
* 2. 元素宽度大于浏览器宽度 scrollWidth: margin-box的宽度区域;
* */
document.body.scrollHeight;
/** 1. 元素高度小于浏览器高度 scrollHeight: 通常是浏览器窗口的内容区高度;
* 2. 元素宽度大于浏览器高度 scrollHeight: margin-box的高度区域;
* */
document.body.scrollLeft;
document.body.scrollTop;
/** 是该元素的显示(可见)的内容与该元素实际的内容的距离。**/
document.body.scrollLeftMax; // 表示一个元素横向滚动条可滚动的最大距离。
document.body.scrollTopMax; // 表示一个元素纵向滚动条可滚动的最大距离。
</script>
</body>
</html>
JS宽高的属性认识与应用
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 患者因“寒战、发热11天”入院,门诊诊断“急性肝脓肿”。入院后予肝脓肿穿刺置管引流术,术后第二天10am,患者出现...
- (1)、创建组distro,其GID为2016 (2)、创建用户mandriva,其ID号为1005;基本组为di...
- [导读]人们买房、买车,但很多人至今仍对车位没有一个清楚的概念。这样说吧,就是下班了,你开着车,费了好长时间才找到...