getBoundingClientRect 可以用来获取 元素 相对视图左上角的位置。它的返回值是一个对象,包含4个属性:{top:0,left:0,bottom:0,right:0},
——FirefoxV3.1+扩展了该对象,添加了width,height属性。
默认它是不计算页面的滚动距离的,跨浏览器的解决方案,可以参考jQuery的offset方法。
getClientRects 可以把一段文本是为"盒子"来处理。也就是说,可以用来计算一段文本的行数,高度、宽度。它的返回值是一个数组对象,
包含了TextRectangle 对象{top:0,left:0,bottom:0,right:0,width:0,height:0}。
IE支持block元素和inline元素里面文本.IE9+支持width、height属性。
其它浏览器仅支持 inline元素,对于block元素里面的文本,仅看做一个,数组包含一个TextRectangle对象。
例如:
// 假如 这里的文本做10行显示。
<span id="pp">这里是一大段文本</span>
var pp = document.getElementById("pp");
var aList = pp.getClientRects();
console.log(aList.length); // 10
//------------------------------------------
这里是一大段文本
var pp = document.getElementById("pp");
var aList = pp.getClientRects();
console.log(aList.length); // IE:10; 其它浏览器:1
更多资料,参考:
https://developer.mozilla.org/en-US/docs/DOM/element.getClientRects
https://developer.mozilla.org/en-US/docs/DOM/element.getBoundingClientRect
http://msdn.microsoft.com/zh-cn/subscriptions/downloads/hh779967.aspx
http://msdn.microsoft.com/zh-cn/subscriptions/downloads/hh780167.aspx
分享到:
相关推荐
返回值是一个 DOMRect 对象,这个对象是由该元素的 getClientRects() 方法返回的一组矩形的集合, 即:是与该元素相关的CSS 边框集合。 属性值: top: 元素上边距离页面上边的距离 left: 元素右边距离页面左边的...
项目中遇到图片实际显示尺寸的判定问题,图片可能被缩放过,所以实际显示的宽高无法通过常见的各种width,height拿到(都是得到图像的自然宽度或者...getClientRects 和 getBoundingClientRect 的区别 getClientRects 返回
`getBoundingClientRect`返回的坐标是相对于视口的,所以为了得到相对于文档的坐标,需要减去`docElement.clientTop`和`docElement.clientLeft`,这两个属性分别代表了视口顶部和左侧与文档的偏移。 总结来说,这两...
- `getClientRects()`:返回元素中每一行的尺寸位置,适用于行级元素。 - `offsetParent`:返回拥有定位属性的最近父级元素,或者是`body`、`td`、`th`或`table`。 - `offsetWidth`和`offsetHeight`:包括内边距、...
- `getClientRects()`和`getBoundingClientRect()`:获取Range的几何信息,用于定位和渲染。 在实际开发中,理解和熟练运用这些方法可以帮助开发者更好地操纵文档中的文本选择,实现各种复杂的富文本编辑功能。同时...