是否可以將DIV位置從絕對位置改變爲相對位置(以及相對於絕對位置)? DIV應保持在同一地點。將絕對位置轉換爲相對位置
回答
您可以更改屬性與
$(object).css({position: 'absolute'});
例如:
你可以使用jQuery的方法.position()
或.offset()
設置「頂」和「左」 CSS屬性藏漢,這樣,你的對象應該留下在它的位置從相對 - >絕對變化 。
我不認爲這是反之亦然。
$(object).css({position:'absolute',top:dy,left:dx}); clone.css({position:'relative'}); 不起作用 - 更改爲相對後的元素位置,位置不同 但是當我存儲偏移量並在更改爲相對後再次設置它時,位置相同 $(object).css({position:'absolute',top :dy,left:dx}); var x = clone.offset()。left; var y = clone.offset()。top; clone.css({position:'relative'}); offset({top:y,left:x}); – John 2010-03-30 14:28:09
possibilitys的簡單的例子: http://jsbin.com/uvoka 親切的問候, --Andy – jAndy 2010-03-30 16:44:41
建議的「解決方案」未進行轉換什麼! – 2014-04-29 16:08:24
你可以很容易地從相對使用其更改爲絕對的offsetLeft和價值觀的offsetTop左和頂部的風格。
另一種解決方法比較困難。您基本上必須將其更改爲相對值並查看其結束位置,然後根據當前偏移量和所需位置計算新的偏移值。
請注意,當定位是相對的時,該元素是頁面流的一部分,可能會影響其他元素。當位置是絕對位置時,該元素位於頁面流之外,不會影響其他元素。因此,如果您在絕對定位和相對定位之間切換,您也可能需要對其他元素進行更改,如果您不希望它們移動。
因爲在評論格式不工作,我會在這裏發佈
$(object).css({position: 'absolute',top: dy, left:dx});
// dy, dx - some coordinates
$(object).css({position: 'relative'});
解決方案不起作用:更改爲相對後元素位置是不同的。
但是,當我存儲的偏移並改變相對之後再進行設置,位置是相同的:
$(object).css({position: 'absolute',top: dy, left:dx});
var x = $(object).offset().left;
var y = $(object).offset().top;
$(object).css({position: 'relative'});
$(object).offset({ top: y, left: x });
Thx分享此。真的幫助了我。 – 2011-03-15 23:23:19
這段代碼是否從絕對變爲相對? – Varun 2011-04-13 05:43:55
prototype.js中有element.absolutize()和element.relativize它工作得很好。
從相對於絕對要的問題是, element.offsetTop和offsetLeft
只給你的元素到其父的偏移。 你需要測量cumualtive偏移量(即
the offset of your element to its parent +
the offset of the parent to its parent +
the offset of its parent to its parent +
等)
我一直想知道這個方法實際上是做什麼的?它是否會使非「身體」子元素保持其位置,同時將其附加到文檔的身體?或者它只是「絕對化」一個相對於它的父項的元素?如果是後者,那麼我將使用您的解決方案。謝謝 – 2018-03-05 21:03:42
如果你真的想要得到的總頂部是絕對和相對位置元素的子元素的偏移你能使用此功能
function calcTotalOffsetTop(elm)
{
var totalOffsetTop = 0,
curr = elm;
while(curr.parent().is(':not(body)'))
{
curr = curr.parent();
totalOffsetTop += curr[0].offsetTop;
}
return totalOffsetTop;
}
這是基本上上面給出的解決方案的代碼。
這非常適合非身材父母內部的元素,這正是我所需要的。謝謝。實際上,我使用prototype.js框架,所以我想知道'absolutize()'是否做同樣的事情,如下所述,但我有一種感覺,它只會使元素'絕對',相對於它的父類而不是文件正文。所以,我會用你的解決方案... – 2018-03-05 20:58:55
- 1. css位置:相對vs位置:絕對
- 2. CSS相對絕對位置
- 3. 相對的絕對位置
- 4. 轉換爲計算/絕對位置
- 5. 如何將顯示位置從絕對位置改變爲相對位置?
- 6. 絕對位置在絕對位置
- 7. 位置:出現在相對位置上的相對位置:絕對
- 8. 位置div與相對位置內部絕對定位div
- 9. 位置:絕對在位在Chrome中相對位置:
- 10. 位置:絕對
- 11. 相對/絕對位置css(轉換面元素矩形座標)
- 12. 位置絕對內絕對
- 13. 將絕對定位項目放在相對位置上。 (IE)
- 14. CSS位置:絕對位置:相對「頂部」不工作
- 15. jquery:我可以動畫位置:絕對位置:相對?
- 16. 相對位置和絕對位置之間的填充
- 17. CSS div(位置相對)忽略另一個div(位置:絕對)
- 18. 在IE7中相對位置絕對位置頂部顯示?
- 19. 位置:絕對和位置:相對問題ie
- 20. css絕對位置內部相對位置不重疊
- 21. 是否有替代位置:絕對內嵌位置:相對?
- 22. CSS位置絕對和相對位置錯誤
- 23. 使用jQuery獲得div的絕對或相對位置位置
- 24. 相對位置div內的絕對位置div移動
- 25. 位置:絕對div在位置內消失:相對
- 26. HTML/CSS位置絕對&相對
- 27. CSS位置相對於絕對
- 28. jquery動畫位置 - 絕對vs相對
- 29. CSS位置:絕對相對調整
- 30. 絕對和相對的CSS位置
你問:「它會留在同一個地方嗎?」。如果是這樣,是的,但是作爲相對的,它將在文檔流中,絕對不會。 – Zoidberg 2010-03-30 14:03:29
我絕對定位了應該轉換爲相對的元素。問題是我無法計算相對的正確位置(頂部,左側),所以元素將保留在他們的位置。 – John 2010-03-30 14:12:00