javascript --获取css样式最终的属性值

本文介绍了在现代浏览器中通过JavaScript获取网页元素位置的方法,包括相对于页面、父元素及CSS容器的位置计算,提供了实用的函数实现跨浏览器兼容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

创建动态效果又三个至关重要的元素:位置,尺寸,可见性。

使用这三个元素可以模拟现代浏览器上绝大部分的动态交互效果了。

一,元素的位置

元素位置的不同取决于它的css设置,同时也会受到与他密切相关的其他内容的影响。访问元素css属性或者最终的真实值并不能提供他相对于页面或者其他元素的精确位置。

1,获取相对于页面的位置。

offsetParent.这是元素的父元素,元素相对于它定位。但是在实际中,offsetParent所指向的元素取决于他的浏览器(firefox指向根节点,opera就是元素的直接父亲)

offsetLeft offsetTop 这两个属性分别是元素在offsetParent上下文中的水平和垂直偏移量。

现在的问题是找一个跨浏览器的方法,如下:

两个确定元素相对于整个文档的x和y位置的辅助函数

//获取元素x位置

//获取元素y位置

接下来的难题是找出元素相对于它的父亲的水平和垂直位置。需要注意的是,简单使用元素的style.left或者style.top并不够,因为需要处理

的元素可能尚未经过js或者css的样式化。

使用元素相对于其父亲的位置,就可以为dom增加额外的元素,并相对定位于他的父亲。例如,他对制作上下文工具条提示非常有用。

要找到元素相对于它的父亲元素的位置,必须再次使用offsetParetn属性。因为该属性并不保证能够返回指定元素的真实父亲,必须使用pageX和pageY函数来找出父亲元素和子元素之间的差距。

确定元素相对于父亲元素位置的两个函数

关于元素位置的最后一个难题是:获取元素相对于它的css容器的位置。

如前所述,即使元素包含在一个元素内,但可以相对于其他的父亲元素而定位(使用相对和绝对定位)。记住这点,就可以求助getStyle函数得到css偏移的最终值,这等元元素的位置值。

获取元素css位置的辅助函数

这两个函数取掉了干扰性的信息比如单位。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值