클래스 "영역"이있는 일부 div가 서로 옆에 떠있었습니다. 나는 다음과 같은 jQuery 코드가 있습니다jQuery position()은 요소 위치 지정이 절대로 설정된 경우 0을 반환합니다.
$(".area").each(function(){
var pos = $(this).position();
$(this).css({"left":pos.left, "top":pos.top});
});
이 잘 작동하지만 요소가 정적으로 위치 할 때 아아, 상단과 왼쪽 브라우저에 의해 고려되지 않습니다. 요소의 위치 값을 수정하면 pos.left와 pos.top이 모두 0입니다.
$(".area").each(function(){
var pos = $(this).position();
$(this).css({"left":pos.left, "top":pos.top, "position":"absolute"});
});
는 $(this).position()
지속적으로 {left:0,top:0}
를 반환 즉이 코드가있는 경우입니다. $.position()
이 어떻게 작동하는지 오해하고, CSS 위치가 어떻게 작동하는지 오해합니까? 아니면이 버그입니까? 누구든지이 문제를 해결하는 방법에 대한 제안이 있습니까?
을 상쇄 봤어? 부모님을 친척으로 지명하셨습니까? –
jsFiddle을 보는 것이 도움이 될 수 있지만 이론은 다음과 같을 수 있습니다. 첫 번째 요소는 맨 위 : 0, 왼쪽 : 0이고 두 번째 요소는 (가설) 맨 위 : 0, 왼쪽 : 20입니다. 첫 번째 반복에서 요소 1을 절대로 설정하고 흐름에서 요소 1을 제거하고 요소 2가 0,0으로 재배치되도록합니다. 따라서 각 요소가 하나씩 흐름에서 벗어나서 다음 요소를 초기 시작 위치로 이동하기 때문에 항상 0,0을 얻습니다. – Syon
상위 위치는 상대적으로 설정됩니다 (예). position()은 내 필요를위한 함수이기 때문에 나는 offset을 시도하지 않았다. 실제로, position : absolute가 요소에 설정되어 있지 않으면 작동합니다. 요소를 반복하면서 위치()는 절대 위치에 배치되기 전에 0 값을 반환합니다. position이 absolute로 설정되지 않으면 모두 정상입니다. 콜백 내부의 어떤 지점에서 현재 처리 된 요소의 CSS 위치를 설정하면 첫 번째 명령문인데도 위치 값은 (0,0)이됩니다./ –