【js】--------------getBoundingClientRect()和getBBox()和getClientRects()的区别------------【劉】...

一、getBoundingClientRect获取元素位置

用于获取页面中某个元素左,上,右和下分别相对浏览器视窗的位置。它返回的是一个对象,对象中包含{left,right,bottom,top,x,y,height,width}八个属性

其中left,top,x, y是距离浏览器窗口左上角的位置坐标。而height,width则是元素的高。right是指元素右边界距窗口最左边的距离,bottom是指元素下边界距窗口最上面的距离

 

注意:x,y在ios10.3版本中获取不到(其他情况待定)。只能用left和top。 默认它是不计算页面的滚动距离的,跨浏览器的解决方案。

二、getBBox()过去svg中的元素位置

在svg中一些标签无法获取他的元素和位置。所以用getBBox以返回一个 包含 x, y, width, height 的 SVGRect 对象, 表明 SVG 元素在 viewport 内部的宽高和左上角坐标, 不受到 SVG Transform 和 SMIL 动画影响.

 

三、getClientRects()

 getClientRects()返回一个TextRectangle集合,就是TextRectangleList对象。getBoundingClientRect 返回 一个TextRectangle对象,即使DOM里没有文本也能返回TextRectangle对象。

 

四:浏览器差异

除了safari,firefox2.0外所有浏览器都支持getClientRects和getBoundingClientRect,firefox 3.1给TextRectangle增加了 width 和 height。ie 和非ie浏览器在使用getClientRects还是有些差别的,ie获取TextRectangleList的范围很大。而非ie获取的范围比较小, 只有display:inline的对象才能获取到TextRectangleList,例如em i span 等标签。通过测试,至少Chrome 2+\Safari 4\Firefox3.5\0pera 9.63+已经支持getBoundingClientRect方法。使用场景差异:出于浏览器兼容的考虑,现在用得最多的是getBoundingClientRect()

用来获取元素的信息

 

转载于:https://www.cnblogs.com/lstcon/p/10796341.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值