2011-03-16 258 views
3

我想定位ElementA旁邊ElementB喜歡這裏規定: How to position one element relative to another with jQuery?jQuery的:位置元素旁邊另一個解決它有

唯一的區別是,我想ElementA走動與ElementB如果ElementB移動。

是否有可能以某種方式將某個元素的位置修復到另一個元素的位置?每次移動ElementB時,重新計算ElementA的位置是不可行的。

UPDATE

在我的情況,ElementB是td元素。顯然,td元素不能相對定位,這就是爲什麼元素A不隨元素B移動。一個簡單的解決方法是簡單地在ElementB中添加相對定位的div,然後將ElementA放置在那裏。

回答

3

編輯:在這裏尋找一個活生生的例子:http://jsfiddle.net/jPUbh/

你的HTML改成這樣:

<div id="placeholder" style="position:relative"> 
    <div id="placeholder-text">Hover over me to show the menu here</div> 
    <div style="position: absolute; display: none; top: 20px; left: 0px" id="menu"> 
     <!-- menu stuff in here --> 
    </div> 
</div> 

和你的JS這樣:

$("#placeholder-text").mouseover(showMenu); 

var showMenu = function(ev) { 
    $("#menu").show(); 
} 

當父元素(int this case div#placeholder)設置爲相對時,其內部設置爲絕對的塊級元素將相對於父級定位。因此,請更改div#菜單的頂部和左側屬性以適應您的需求。現在如果div#佔位符移動,div#菜單隨之移動。

而你的JS在一些CSS上更乾淨!

此外,ids是完全通用的,可以根據您的需要更改它們:-)如果您在html中更改它們,請更新JS!

+0

嗯,它不工作。在我的情況下,ElementA通過javascript被添加到ElementB。這對ElementA的定位有任何影響嗎? – ajbeaven 2011-03-16 00:35:41

+0

我添加了一個JSFiddle鏈接:http://jsfiddle.net/jPUbh/ – moe 2011-03-16 00:37:58

+0

哦,ElementB也是​​ – ajbeaven 2011-03-16 00:43:26

2

如果您ElementAElementB那麼這是可能的孩子,它並沒有被「內部」這是一個孩子,你可以將相對於父元素位置,使用負座標把它帶到外面。然後移動元素B也應該重新定位孩子。

演示:http://jsfiddle.net/sEGZD/

+0

你能提供樣品嗎? – bnieland 2011-03-16 00:28:38

+0

@bnieland:增加了一個演示,所有的DIV都是可移動的,父母移動了很多。 – Orbling 2011-03-16 00:41:32

相關問題