0
有一個網絡應用程序,它包含一個表單,並設置它啓動一個對話框,其中包含主題標籤文本字段旁邊的信息。 每次有人填寫表單並點擊提交,表單的郵件正文(從表單的文本區域)顯示在上方,並在其下方顯示 表單。之前,我將它設置爲固定(x,y),使對話框出現在主題標籤旁邊。但是,現在,當頁面變得更長時,該對話框不會出現在我的主題標籤文本字段旁邊。它顯示低得多。如何在頁面變得更長時爲對話框設置相對位置(滾動條被激活)?
下面的代碼找到的位置:
// Finds the position and adds 40px to the left axis.
function findPosition(obj) {
var curleft = curtop = 0;
if (obj.offsetParent) {
do {
curleft += obj.offsetLeft;
curtop += obj.offsetTop;
} while (obj = obj.offsetParent);
curleft += 42;
// alert ('[' + curleft + ', ' + curtop + ']');
return [curleft,curtop];
}
}
下面是調用該函數在一個特定的地方顯示一個對話框代碼:
function displayDialog() {
var subjectLabel = document.getElementById("myform.subjectLabel");
$("#myDialog").dialog({
open: function(event, ui) {
jQuery('.ui-dialog-titlebar-close')
.removeClass("ui-dialog-titlebar-close")
.html('<span padding-right = "16px;">Close</span>');
},
hide: true,
draggable: false,
position: findPosition(subjectLabel),
closeOnEscape: false
});
}
如何設置它,所以我的當頁面太長時(需要滾動條時),findPosition()計算不會計算錯誤?
有沒有辦法設置相對定位總是讓對話框出現在主題標籤的右側40px?
感謝您花時間閱讀本文。
elrasguno,謝謝你的迴應!對不起,你的例子沒有工作。你會碰巧知道如何在我的代碼中集成scrollTop()和scrollLeft()函數來使它工作嗎? –