2011-08-17 67 views

回答

20

想要查找CSS right屬性的值嗎?

$('#foo').css('right'); 

在普通的JavaScript:

document.getElementById('foo').style.right; 

但是,如果你想找到一個元素到另一個的右邊緣的右邊緣計算距離,那麼你就必須自己做,結合.position().left.offsetWidth

+0

謝謝我只是要求正確的價值,這是以前計算。謝謝 – Xavier

+3

我發現令人沮喪的是,JavaScript(和jQuery)不會爲您代表計算正確位置的工作。這似乎是一件非常明顯的事情,如果該框架允許您從自己的計算中抽象出來,那將會很好。 – cartbeforehorse

+0

@nickf我看不到'.position()。left'和'.offsetWidth'可以給你一個假設的'.position()。right'。要計算一個'.position()。right' *的值相對於偏移父*的值,你必須知道當前元素的** .offsetWidth **和那個偏移父值的**,後者是遺失的部分。我錯過了什麼嗎? – avernet

2

你可以嘗試.css

.css("right");

+0

只有在已經設置了「right」的情況下才有效 – user3152459

3
$(document).width() - ($('#elem').offset().left + $('#elem').width()); 

應該讓你在元素的右側,然後可以設置空間作爲元素位置的「正確」屬性的值;

0

CSS值僅在通過樣式或$ .css()設置時纔有效。

但是,如果你需要得到一個對象的正確位置,你應該使用javascript/jquery。

儘管有一些有效的解決方案,但需要注意$ .fn.width()不考慮填充和邊框。所以最好使用outerWidth()

例子:

$(document).width() - ($('#elem').offset().left + $('#elem').outerWidth()); 

你甚至可以創建一個$ .fn函數來獲取值:

$.fn.right = function() { 
    return $(document).width() - (this.offset().left + this.outerWidth()); 
} 

,然後使用它:

$('#elem').right(); 
0

正如指出的@評論中的avernet,相當於一個假設的.position()。right會表達如下:

$('#foo').offsetParent().width() - ($('#foo').position().left + $('#foo').width());