JS【详解】screen 、document 宽高尺寸、event 坐标(含offsetHeight、offsetWidth、clientHeight、clientWidth 等的计算规则)

在这里插入图片描述

【考题】计算规则

  • offsetHeight 和 offsetWidth
border + padding + content
  • clientHeight 和 clientWidth
padding + content
  • scrollHeight 和 scrollWidth
padding + 实际内容尺寸

window 屏幕

屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth

document 网页

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

event 事件

event.clientX 相对文档的水平座标
event.clientY 相对文档的垂直座标
event.offsetX 相对容器的水平坐标
event.offsetY 相对容器的垂直坐标

应用范例

在这里插入图片描述

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>请调整浏览器窗口</title>
    <meta http-equiv="content-type" content="text/html; charset=gb2312" />
  </head>
  <body>
    <h2 align="center">请调整浏览器窗口大小</h2>
    <hr />
    <form action="#" method="get" name="form1" id="form1">
      <!--显示浏览器窗口的实际尺寸-->
      浏览器窗口 的 实际高度:
      <input type="text" name="availHeight" size="4" /><br />
      浏览器窗口 的 实际宽度:
      <input type="text" name="availWidth" size="4" /><br />
    </form>
    <script type="text/javascript">
      var winWidth = 0;
      var winHeight = 0;
      //函数:获取尺寸
      function findDimensions() {
        //获取窗口宽度
        if (window.innerWidth) {
          winWidth = window.innerWidth;
        } else if (document.body && document.body.clientWidth) {
          winWidth = document.body.clientWidth;
        }

        //获取窗口高度
        if (window.innerHeight) {
          winHeight = window.innerHeight;
        } else if (document.body && document.body.clientHeight) {
          winHeight = document.body.clientHeight;
        }

        //通过深入Document内部对body进行检测,获取窗口大小
        if (
          document.documentElement &&
          document.documentElement.clientHeight &&
          document.documentElement.clientWidth
        ) {
          winHeight = document.documentElement.clientHeight;
          winWidth = document.documentElement.clientWidth;
        }
        //结果输出至两个文本框
        document.form1.availHeight.value = winHeight;
        document.form1.availWidth.value = winWidth;
      }
      findDimensions();
      //调用函数,获取数值
      window.onresize = findDimensions;
    </script>
  </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝阳39

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值