您的位置:首页 > 其它

firefox、IE之部分属性用法区别

2012-08-03 14:23 141 查看

1.有关style的单位问题

在IE下设置obj.style.left时可以不需要加单位,但是发现在firefox上动态定位需要叫上"px"才有效果,即改成obj.style.left = x + "px";

2.烦人的offsetParent和offsetLeft问题

当某个元素的父元素进行了CSS定位时(absolute或者relative),则这个元素的offsetParent属性的取值为其父元素。更确切地说,这个元素的各种偏移量计算(offsetTop、offsetLeft等)的参照物为其父元素。

当只有某个元素进行了CSS定位,其父元素及其DOM结构层次上都未进行CSS定位时,则这个元素的offsetParent属性的取值为HTMLBODYElement。更确切地说,这个元素的各种偏移量计算(offsetTop、offsetLeft等)的参照物为Body元素。

所以在获取offetLeft的时候,作如下的判断

if(obj.offsetParent.tagName.toLowerCase() != 'body')
objLeft =obj.getBoundingClientRect().left;
else
objLeft = obj.offsetLeft;
不过据说IE8,Opera 以及特殊情况的IE6IE7里面

如果通过elemnt.offsetParent element.offsetLeftelement.offsetTop计算页面元素位置需要在每一次循环中减去borderLeftWidth和borderTopWidth的值

3.firefox中获取event

在网上看了很多例子大同小异,基本上都是采用传递一个参数来捕获的,但是今天测试了一下并不起作用,在百度文库上找到一篇文章发现这个方法确实有用,这里贴出来供大家共同学习
arguments.callee.caller.arguments[0].target
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: