javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法

javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法关于js中的offsetWidth、clientWidth、scrollWidth等一系列属性及其方法一直都傻傻分不清,这里就来总结一下这些方法的用法和含义。注意:下面元素属性和元素方法都通过elem.属性或elem.方法的方式使用,window属性通过window.属性的方式使用,document属性则通过document调用。<script>/*…

大家好,又见面了,我是你们的朋友全栈君。

关于js中的offsetWidth、clientWidth、scrollWidth等一系列属性及其方法一直都傻傻分不清,这里就来总结一下这些方法的用法和含义。

注意: 下面元素属性和元素方法都通过 elem.属性elem.方法 的方式使用,window属性通过 window.属性 的方式使用,document属性则通过document调用。

<script>
    /*
     ****** 元素视图属性
     * offsetWidth 水平方向 width + 左右padding + 左右border-width
     * offsetHeight 垂直方向 height + 上下padding + 上下border-width
     * 
     * clientWidth 水平方向 width + 左右padding
     * clientHeight 垂直方向 height + 上下padding
     * 
     * offsetTop 获取当前元素到 定位父节点 的top方向的距离
     * offsetLeft 获取当前元素到 定位父节点 的left方向的距离
     * 
     * scrollWidth 元素内容真实的宽度,内容不超出盒子高度时为盒子的clientWidth
     * scrollHeight 元素内容真实的高度,内容不超出盒子高度时为盒子的clientHeight
     * 
     ****** 元素视图属性结束
     * 
     ****** Window视图属性(低版本IE浏览器[<IE9]不支持) 【自测包含滚动条,但网络教程都说不包含???】
     * innerWidth 浏览器窗口可视区宽度(不包括浏览器控制台、菜单栏、工具栏) 
     * innerHeight 浏览器窗口可视区高度(不包括浏览器控制台、菜单栏、工具栏)
     * ***** Window视图属性结束
     * 
     ****** Document文档视图
     * (低版本IE的innerWidth、innerHeight的代替方案)
     * document.documentElement.clientWidth 浏览器窗口可视区宽度(不包括浏览器控制台、菜单栏、工具栏、滚动条)
     * document.documentElement.clientHeight 浏览器窗口可视区高度(不包括浏览器控制台、菜单栏、工具栏、滚动条)
     * 
     * document.documentElement.offsetHeight 获取整个文档的高度(包含body的margin)
     * document.body.offsetHeight 获取整个文档的高度(不包含body的margin)
     * 
     * document.documentElement.scrollTop 返回文档的滚动top方向的距离(当窗口发生滚动时值改变)
     * document.documentElement.scrollLeft 返回文档的滚动left方向的距离(当窗口发生滚动时值改变)
     ****** Document文档视图结束
     * 
     ****** 元素方法
     * 1. getBoundingClientRect() 获取元素到body
     *  bottom: 元素底边(包括border)到可视区最顶部的距离
     *  left: 元素最左边(不包括border)到可视区最左边的距离
     *  right: 元素最右边(包括border)到可视区最左边的距离
     *  top: 元素顶边(不包括border)到可视区最顶部的距离
     *  height: 元素的offsetHeight
     *  width: 元素的offsetWidth
     *  x: 元素左上角的x坐标 
     *  y: 元素左上角的y坐标 
     * 
     * 2. scrollIntoView() 让元素滚动到可视区
     * 
     * ***** 元素方法结束
     * 
     */
</script>

上面属性中,关于 window.innerWidthwindow.innerHeight, 我自己测试的结果值是包含滚动条的,但网上的教程和相关文档都说不包括滚动条,虽然滚动条的宽度不大,对整体影响也不明显,但如果有道友有准确答案的,还请不吝赐教,顺手留个言,谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163008.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CPU核数和load average的关系「建议收藏」

    CPU核数和load average的关系「建议收藏」在前面的文章《Linux系统监控——top命令》中我简单提到了,判断loadaverage的数值到底大不大的判断依据,就是数值除以CPU核数,大于5,就说明超负荷运转了。——这里其实不太严谨今天这篇文章来仔细分析分析,CPU和loadaverage的关系。转载文章一我们知道判断一个系统的负载可以使用top,uptime等命令去查看,它分别记录了一分钟、五分钟、以及十五分钟的系统…

    2022年7月17日
    27
  • C#之CMD

    C#之CMD

    2021年8月18日
    67
  • docker网络配置方法总结

    docker网络配置方法总结

    2022年2月5日
    57
  • laravel中不使用 remember_token时退出报错,如何解决?

    laravel中不使用 remember_token时退出报错,如何解决?

    2021年10月28日
    60
  • idea设置热部署

    idea设置热部署其实,idea和eclipse设置热部署都很简单,但是很多人都会忽略掉一点,那就是:一定要在debug模式下才有用!!(配置文件什么的还是要重启的)(不像myeclipse直接star也可以热部署,对于我这种用惯了myeclipse的来说,基本没用debug启动过,所以老觉得配置没用)idea部署方法:(转自https://www.cnblogs.com/1024zy/p

    2022年6月12日
    42
  • Jmeter正则表达式提取器-一些常用技巧

    Jmeter正则表达式提取器-一些常用技巧以下为网上转载:1、提取全部:^(.*)$2、提取中间某一段:(.*?)或(.+?)3、从中间某处提取到末尾:([^”]+)4、转义:\5、换行:\n6、\d+是来匹配1个或更多连续的数字ps:(.+?)和(.*?)的区别:(.+?)提取1个字符串及以上,不要太贪婪,在找到第一个匹配项后停止;(.*?)提取0个字符串及以上,要取的值是空值的时候可以取得到。例如:“test”:””,如果要取test的值,使用(.+?)匹配不…

    2025年10月20日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号