1.有关style的单位问题
在IE下设置obj.style.left时可以不需要加单位,但是发现在firefox上动态定位需要叫上"px"才有效果,即改成obj.style.left
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