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, 我自己测试的结果值是包含滚动条的,但网上的教程和相关文档都说不包括滚动条,虽然滚动条的宽度不大,对整体影响也不明显,但如果有道友有准确答案的,还请不吝赐教,顺手留个言,谢谢!

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • docker 镜像构建_docker 镜像制作

    docker 镜像构建_docker 镜像制作前言如果我们已经安装了一个python3的环境,如果另一台机器也需要安装同样的环境又要敲一遍,很麻烦,这里可以配置Dockerfile文件,让其自动安装,类似shell脚本Dockerfile编写

  • 拉姆达表达式 集合操作「建议收藏」

    拉姆达表达式 集合操作「建议收藏」List<Map<String,Object>>lpsgjdList=syDkKfslyxxManager.getAlpsgjdQryData(syDkKfslyxxVo); //根据某一个key进行分组 Map<Object,List<Map<String,Object>>>dongh=lpsgjdList.stream().collect( Collectors.groupingBy(e->e.ge

  • Kubernetes 删除Evicted Pods命令[通俗易懂]

    Kubernetes 删除Evicted Pods命令[通俗易懂]安装jqsudoyuminstalljq-y运行删除命令kubectlgetpods–all-namespaces-ojson|jq’.items[]|select(.status.reason!=null)|select(.status.reason|contains(“Evicted”))|”kubectldeletepods\(.metadata.name)-n\(.metadata.namespace)”‘|xargs-n1bas

  • 进程调度算法设计_三种调度算法

    进程调度算法设计_三种调度算法【实验目的】进程管理是操作系统中的重要功能,用来创建进程、撤消进程、实现进程状态转换,它提供了在可运行的进程之间复用CPU的方法。在进程管理中,进程调度是核心,因为在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态,当就绪进程个数大于处理器数目时,就必须依照某种策略决定哪些进程优先占用处理器。本实验模拟在单处理器情况下的进程调度,目的是加深对进程调度工作的理解,掌握不…

  • JAVA链表中的回文链表结构

    JAVA链表中的回文链表结构作为一个java初学者,最近遇到了回文链表结构这个难题,经过一番学习总算搞清楚个大概。先来说一下什么是回文链表,会问链表在我们生活中经常能够遇到。会问链表的结构就是例如:1->2->3->2->1。我们将它反转过来还是与原链表相同,这种就称为回文结构。具体方法:1.先找到链表的中间位置2.然后将中间位置的链表反转3.从两边向中间遍历代码如图classNode{publi…

  • PHP中如何使用Redis接管文件存储Session详解

    PHP中如何使用Redis接管文件存储Session详解

发表回复

您的电子邮箱地址不会被公开。

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