我希望得到一個元素的正確位置。我已經嘗試attr('right')
,並且我已經閱讀了關於.position().right
的API文檔,該文檔不存在(我相信)。如何獲得元素的正確位置?
http://jsfiddle.net/xavi3r/vcuq7/
是我想提醒的權值的例子。
我希望得到一個元素的正確位置。我已經嘗試attr('right')
,並且我已經閱讀了關於.position().right
的API文檔,該文檔不存在(我相信)。如何獲得元素的正確位置?
http://jsfiddle.net/xavi3r/vcuq7/
是我想提醒的權值的例子。
想要查找CSS right
屬性的值嗎?
$('#foo').css('right');
在普通的JavaScript:
document.getElementById('foo').style.right;
但是,如果你想找到一個元素到另一個的右邊緣的右邊緣計算距離,那麼你就必須自己做,結合.position().left
和.offsetWidth
謝謝我只是要求正確的價值,這是以前計算。謝謝 – Xavier
我發現令人沮喪的是,JavaScript(和jQuery)不會爲您代表計算正確位置的工作。這似乎是一件非常明顯的事情,如果該框架允許您從自己的計算中抽象出來,那將會很好。 – cartbeforehorse
@nickf我看不到'.position()。left'和'.offsetWidth'可以給你一個假設的'.position()。right'。要計算一個'.position()。right' *的值相對於偏移父*的值,你必須知道當前元素的** .offsetWidth **和那個偏移父值的**,後者是遺失的部分。我錯過了什麼嗎? – avernet
在我看來,這個工作:
jQuery('#elem').offset().left + jQuery('#elem').width()
感謝這個想法@Mladen Adamovic –
$(document).width() - ($('#elem').offset().left + $('#elem').width());
應該讓你在元素的右側,然後可以設置空間作爲元素位置的「正確」屬性的值;
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();
正如指出的@評論中的avernet,相當於一個假設的.position()。right會表達如下:
$('#foo').offsetParent().width() - ($('#foo').position().left + $('#foo').width());
我相信這是來自先前答案的復仇投票,我投了反對票,因爲它沒有回答問題。 – Xavier