一、BOM基本操作
1、查看滚动条的滚动距离
window.pageXOffset/pageYOffset // IE8和IE8以下不兼容 document.body/documentElement.scrollLeft/scrollTop // 兼容性比较混乱,用时取两个值相加,因为不可能同时存在两个同时有值
封装兼容性方法,求滚动条滚动距离getScrollOffset()
var getScrollOffset = function() { if (window.pageXOffset) { return { x: window.pageXOffset, y: window.pageYOffset } } else { return { x: document.body.scrollLeft + document.documentElement.scrollLeft, y: document.body.scrollTop + document.documentElement.scrollTop } } }
控制台测试滚动条距离显示结果:

2、查看视口尺寸
window.innerWidth/innerHeight IE8及IE8以下不兼容 document.documentElement.clientWidth/clientHeight 标准模式下任意浏览器都兼容
封装兼容性方法,返回浏览器视口尺寸 getViewOffset()
var getViewOffset = function() { if (window.innerWidth) { return { w: window.innerWidth, h: window.innerHeight } } else { if (document.compatMode === "CSS1Compat") { // 标准模式下 return { w: document.documentElement.clientWidth, h: document.documentElement.clientHeight, } } else { // 怪异模式下(头部不加<!DOCTYPE html>) return { w: document.body.clientWidth, h: document.body.clientHeight } } } }
控制台测试视口宽度显示结果:

注意:document身上有一个属性compatMode可以查看当前文档是何种模式(标准或怪异)


上面返回结果是标准模式,下面的返回结果是怪异模式
3、查看元素尺寸
查看元素几何尺寸
domEle.getBoundingClientRect(); // domEle(任意DOM元素) 兼容性很好【了解】
// 该方法返回一个对像,对象里面有left、top、right、bottom等属性。left和top代表该元素左上角的X和Y坐标,right和bottom代表该元素右下角的X和Y坐标
来看一个例子
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>文档标题</title>
<style type="text/css">
div {
width: 100px;
height: 200px;
background-color: red;
}
</style>
</head>
<body>
<div></div>
<script type="text/javascript">
var div = document.getElementsByTagName("div")[0];
</script>
</body>
</html>
控制台调用该方法查看该元素的几何尺寸结果:

查看元素尺寸(视觉尺寸)
dom.offsetWidth();
dom.offsetHeight();
js基础十五-- BOM基本操作、获取窗口属性、获取dom尺寸、脚本化CSS
原文:https://www.cnblogs.com/kkw-15919880007/p/14736295.html