js的clientWidth、offsetWidth等

 client

// css 部分
<style>
  .test{
     width:100px;
     height:100px;
     border:1px solid red;
     padding:20px;
}
    </style>
// body 和 js 部分
<div class="test">
        hello
</div>
<script>
   var div = document.getElementsByTagName('div')[0];
   console.log(div.clientWidth);  // 140
   console.log(div.clientHeight)  // 140
   console.log(div.clientTop)  // 1
   console.log(div.clientLeft) // 1
  // 注意不含有以下两个属性
   // console.log(div.clientRight)
   // console.log(div.clientBottom)
</script>

clientWidth = padding值*2(左右padding值) + width 值;

clientHeight = padding值*2(上下padding值) + height 值;

clientTop = border值(上边框值)

clientLeft = border值(左边框值)

offset

<script>
    var div = document.getElementsByTagName('div')[0];
    console.log(div.offsetWidth); //142
    console.log(div.offsetHeight) //142
    console.log(div.offsetTop)  // 8
    console.log(div.offsetLeft)  // 8
  //注意: 以下两个属性不存在
    console.log(div.offsetRight)
    console.log(div.offsetBottom)
</script>

offsetWidth = 左右padding值+width值+左右border值

offsetHeight = 上下padding值+height值+上下border值

注意: 祖先元素的position不能为static,如果所有祖先元素的position都为static,则以body为标准(都是只读属性)

offsetTop 表示该元素的边框上边缘与它最近父元素的上边框内边缘的距离,如果没有父元素则把body当做它的父元素,由此知(默认情况下body有个margin值8px)

offsetTop = 8

offsetLeft = 8

scroll


scrollwidth (padding + width)包含水平滚动条部分,也就是内容区域的宽度,包含被隐藏的部分
scrollHeight (padding + height)包含垂直滚动条部分,也就是内容区域的高度,包含被隐藏的部分
以上两个属性如果内部有隐藏部分,则它们的值为子元素的margin + padding + border + (width | height)

这两个属性可以设置它默认滚动的值,直接设置数字即可,可读可写
scrollLeft (滚动条滚动的水平距离,默认为0)
scrollTop (滚动条滚动的垂直距离,默认为0)


浏览器窗口大小


window.innerWidth (浏览器窗口宽度,不包含工具栏,菜单等,仅仅是可视区域dom的width)
window.innerHeight (浏览器窗口高度,不包含工具栏,菜单等,仅仅是可视区域dom的height)
window.outerWidth (浏览器窗口宽度,包含工具栏、菜单等,整个浏览器的width)
window.outerHeight (浏览器窗口高度,包含工具栏、菜单等,整个浏览器的height)

以下属性是当元素绑定事件时,才会有这些属性

客户区坐标位置(clientX,clientY)

鼠标事件都是在浏览器视口中的特定位置发生的。这个位置信息保存在事件对象的clientX和clientY属性中,所有浏览器都支持这两个属性。

页面坐标位置(pageX,pageY)

pageX和pageY两个属性代表鼠标光标在页面中的位置,因此坐标是从页面本身而非视口的左边和顶边计算的。在没有滚动的情况下,clientX和cilentY与pageX和pageY是相等的。

(offsetX,offsetY)

例如在绑定在点击事件上,则offsetX的值则为鼠标点击在盒子内的位置值,是以绑定事件的盒子为标准的,offsetY也是如此

屏幕坐标位置

鼠标事件发生的时候,不仅仅会有相对于浏览器的窗口,还有一个相对于整个电脑屏幕的位置。通过事件对象中的screenX和screenY属性就可以获得相关的属性信息。

window对象下可以拿到scrollX和scrollY,跟scrollTop和scrollLeft是一样的,不过后者需要Dom节点才能拿到

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值