dom元素高度和宽度

3,446 阅读2分钟

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战

javascript中获取dom元素高度和宽度的方法如下:

网页可见区域宽: document.body.clientWidth
网页可见区域高: document.body.clientHeight
网页可见区域宽: document.body.offsetWidth (包括边线的宽)
网页可见区域高: document.body.offsetHeight (包括边线的高)
网页正文全文宽: document.body.scrollWidth
网页正文全文高: document.body.scrollHeight
网页被卷去的高: document.body.scrollTop
网页被卷去的左: document.body.scrollLeft

对应的dom元素的宽高有以下几个常用的:

元素的实际高度:document.getElementById("div").offsetHeight
元素的实际宽度:document.getElementById("div").offsetWidth
元素的实际距离左边界的距离:document.getElementById("div").offsetLeft
元素的实际距离上边界的距离:document.getElementById("div").offsetTop

JQuery获取屏幕高度:

$(document).ready(function(){

alert($(window).height()); //浏览器当前窗口可视区域高度

alert($(document).height()); //浏览器当前窗口文档的高度

alert($(document.body).height());//浏览器当前窗口文档body的高度

alert($(document.body).outerHeight(true));//浏览器当前窗口文档body的总高度 包括border padding margin

alert($(window).width()); //浏览器当前窗口可视区域宽度

alert($(document).width());//浏览器当前窗口文档对象宽度

alert($(document.body).width());//浏览器当前窗口文档body的宽度

alert($(document.body).outerWidth(true));//浏览器当前窗口文档body的总宽度 包括border padding margin
})

综上所述,JS获取dom元素高度和宽度的方法如下:

元素的实际高度:document.getElementById("div").offsetHeight
元素的实际宽度:document.getElementById("div").offsetWidth
元素的实际距离左边界的距离:document.getElementById("div").offsetLeft
元素的实际距离上边界的距离:document.getElementById("div").offsetTop

监听浏览器窗口变化

如需要根据窗口变化做某些动作(如:dom高度需要根据窗口变化进行调整),可以结合以下方法:

//监听窗口变化
window.onresize = ()=>{
    //打印浏览器宽高
    console.log(document.body.clientWidth'==> BODY对象宽度'console.log(document.body.clientHeight'==> BODY对象高度'console.log(document.documentElement.clientWidth'==> 可见区域宽度'console.log(document.documentElement.clientHeight'==> 可见区域高度')
}

我们有时候需要动态的去计算某个dom的高度,然后保证一个页面能够全部显示dom元素,所以需要我们熟悉这些高度的定义。以及如何使用。