양식으로 구성되어 있고 제목 라벨 텍스트 필드 옆에 정보가 포함 된 대화 상자를 시작하도록 설정 한 웹 앱이 있습니다. 누군가가 양식을 채우고 제출을 클릭 할 때마다 양식의 텍스트 영역에있는 양식의 메시지 본문이 맨 위에 표시되고 양식이 그 아래에 표시됩니다. 전에 대화 상자가 제목 레이블 옆에 나타나도록 고정 된 것으로 설정했습니다 (x, y). 그러나 이제 페이지가 길어지면 내 제목 라벨 텍스트 필드 옆에 대화 상자가 나타나지 않습니다. 훨씬 더 낮게 표시됩니다. 수 나는 나의 그것을 설정하는 방법페이지가 길어질 때 대화 상자의 상대 위치를 설정하는 방법 (스크롤 막대가 활성화되어 있습니까?)
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
});
}
:
여기// 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];
}
}
특정 장소에서 대화 상자를 표시하려면이 함수를 호출하는 코드입니다 : 여기
는 위치를 찾기 위해 코드의 페이지가 너무 길 때 (스크롤 막대가 필요할 때) findPosition() 계산이 잘못 계산되지 않습니까?상대 위치 지정을 설정하여 대화 상자가 항상 제목 레이블의 40px 오른쪽에 나타나게 할 수 있습니까?
시간을내어 읽어 주셔서 감사합니다.
elrasguno, 응답 주셔서 감사합니다! 죄송합니다. 예제가 작동하지 않았습니다. scrollTop() 및 scrollLeft() 함수를 내 코드에 통합하여 작동시키는 방법을 알고 있습니까? –