1. 程式人生 > >js獲取top和left

js獲取top和left

js獲取top值有三種方法獲取,下面分別來講一下

1.直接獲取  obj.style.top   ,但很多時候取出來是個空的,原因是這種方法只能獲取行間樣式設定的,用style寫在外面的和link進來的並不能獲取到,所以很多時候得到的是個空

2. 只讀的方法  可以獲取所有style樣式,存在相容性問題,在標準瀏覽器中可以通過window.getComputedStyle(物件,null).left方法來獲取元素的left和top的屬性值。而在IE瀏覽器上則是採用obj.currentStyle.left方法來獲取屬性值,下面是我寫的一個獲取函式,當然attr你用來獲取別的屬性值也是可以的

function getStyle(obj,attr){
   if(getComputedStyle(obj)) {            // 非IE
     return getComputedStyle(obj)[attr];
    }
   else{                                 //  IE
     return obj.currentStyle[attr];
       }
   }

3.使用obj.offsetLeft來獲取物件的left屬性值,用obj.offsetTop來獲取物件的top屬性值

不管怎麼樣,你用這些把值弄到然後進行運算,然後在賦值給obj.style.top和obj.style.left就可以了

另外注意取值做運算的時候要把單位去掉 

var top = parseInt(obj.offsetTop) + 10;     // 去掉單位做運算

obj.style.top = top + 'px';                 // 加上單位