2012-11-20 75 views
0

我想使用其底部屬性定位彈出框,以便將其放置在當前鼠標懸停的元素上方。讓我們說:相對於底部的位置div

$('#pop-up').css({ 
bottom : currentlyMouseOverElement.offset().top + "px", 
}); 

的問題是,顯示但不完全當前鼠標痊癒了元件上方,而遠在它上面。

有什麼我失蹤?有人可以幫我解決這個問題嗎?

在此先感謝。 賀拉斯

+0

如果您在字段集中的某個div上放置了一個跨度,然後將鼠標懸停在該跨度上方,則所有三個元素都將收到「懸停」狀態。 'currentlyMouseOverElement'可能是您實際懸停的元素的父元素。你可以檢查嗎? – Flater

+0

根據瀏覽器的不同,位置可能會非常棘手。看看保羅科赫的網頁瞭解更多:http://www.quirksmode.org/js/findpos.html – AlexStack

回答

0

嘗試基於高度poition下面的代碼

$('#pop-up').css({ 

    bottom : (currentlyMouseOverElement.offset().top - currentlyMouseOverElement.height())+ "px", 
}); 
+0

嗨Murali,它仍然無法正常工作,我認爲這與div內容大小是可變的。我根據ajax請求獲取該內容,並使用$('#pop-up')。html(contentFromAjaxRequest)將其設置爲內容。你認爲可變大小真的是導致$('#pop-up')div的高度與currentMouseOverElement重疊的問題嗎?設置$('#pop-up')div的底部是否真的意味着:將$('#pop-up')div的底部設置在與其高度無關的位置? – Horace

0

您可以提供的位置是:絕對的彈出元素&位置:相對於其父。

$('#pop-up').css({ 
position: absolute, 
bottom : currentlyMouseOverElement.offset().top + "px", 
}); 
+0

看到這個jsfiddle:http://jsfiddle.net/Hysfh/26/ – Nilesh