js函数收藏

本文介绍了一种JavaScript方法,用于获取页面上任意元素相对于页面的精确偏移值,包括顶部、底部、左侧和右侧的位置坐标。该方法适用于多种浏览器环境,并考虑到了不同浏览器之间的兼容性差异。
获取元素相对于页面的偏移值
_getElementRect = function(e) {
	var bounds;
	try { bounds = e.getBoundingClientRect(); } // this can fail on disconnected DOM elements in IE9
	catch (err) { bounds = {top: e.offsetTop, left: e.offsetLeft, width:e.offsetWidth, height:e.offsetHeight}; }

	var offX = (window.pageXOffset || document.scrollLeft || 0) - (document.clientLeft || document.body.clientLeft || 0);
	var offY = (window.pageYOffset || document.scrollTop || 0) - (document.clientTop  || document.body.clientTop  || 0);

	var styles = window.getComputedStyle ? getComputedStyle(e,null) : e.currentStyle; // IE <9 compatibility.
	var padL = parseInt(styles.paddingLeft)+parseInt(styles.borderLeftWidth);
	var padT = parseInt(styles.paddingTop)+parseInt(styles.borderTopWidth);
	var padR = parseInt(styles.paddingRight)+parseInt(styles.borderRightWidth);
	var padB = parseInt(styles.paddingBottom)+parseInt(styles.borderBottomWidth);

	// note: in some browsers bounds properties are read only.
	return {
		left: bounds.left+offX+padL,
		right: bounds.right+offX-padR,
		top: bounds.top+offY+padT,
		bottom: bounds.bottom+offY-padB
	}
}





转载于:https://my.oschina.net/lirongfei/blog/465028

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值