jquery를 사용하여 $(window).width()
및 $(window).height()
을 반복적으로 호출하여 사이트를 작성하고 뷰포트의 사이즈
문제 해결에서 뷰포트의 크기를 조정하지 않을 때 위 jquery 함수를 반복적으로 호출하여 약간 다른 뷰포트 크기 보고서가 생성된다는 것을 발견했습니다.
누군가가 이런 일이 언제 일어날 지 아는 사람이 있는지 궁금해하는 경우 또는 이것이 바로 그런 경우인지 궁금합니다. 보고 된 크기의 차이는 20px 이하입니다. Mac OS X 10.6.2에서 Safari 4.0.4, Firefox 3.6.2 및 Chrome 5.0.342.7 베타 버전에서 발생합니다. 나는 다른 브라우저를 테스트하지 않았다. 왜냐하면 브라우저에 특정한 것으로 보이지 않기 때문이다. 그 차이가 무엇에 달려 있는지 알아낼 수 없었습니다. 뷰포트 크기가 아닌 경우 결과가 다른 또 다른 요소가있을 수 있습니까?
어떤 통찰력도 인정 될 것입니다.
갱신 :
그것은 $(window).width()
및 $(window).height()
의 값이 변화되지 않습니다. 위의 값을 저장하기 위해 사용하는 변수의 값입니다.
값을 변경하는 것은 스크롤바가 아니며, 변수 값이 변경되면 스크롤바가 나타나지 않습니다. 내 변수에 값을 저장하는 코드는 다음과 같습니다.
// 처음에 내가 값에 대해 위의 변수를 조사하기 경고 문을 삽입 .ready()
var windowWidth = $(window).width(); //retrieve current window width
var windowHeight = $(window).height(); //retrieve current window height
var documentWidth = $(document).width(); //retrieve current document width
var documentHeight = $(document).height(); //retrieve current document height
var vScrollPosition = $(document).scrollTop(); //retrieve the document scroll ToP position
var hScrollPosition = $(document).scrollLeft(); //retrieve the document scroll Left position
function onm_window_parameters(){ //called on viewer reload, screen resize or scroll
windowWidth = $(window).width(); //retrieve current window width
windowHeight = $(window).height(); //retrieve current window height
documentWidth = $(document).width(); //retrieve current document width
documentHeight = $(document).height(); //retrieve current document height
vScrollPosition = $(document).scrollTop(); //retrieve the document scroll ToP position
hScrollPosition = $(document).scrollLeft(); //retrieve the document scroll Left position
}; //end function onm_window_parameters()
내에서 기능을 otehr에 볼 수 있도록 변수를 선언 (이 모든 $(document).ready()
내에)들이 붙들려 야한다. $(item).param()
값은 일관성을 유지하지만 내 변수는 알아낼 수없는 이유로 변경됩니다.
나는 설정 값을 검색하는 대신 내 코드가 해당 변수의 값을 변경하는 위치를 찾고 아무 것도 찾을 수 없습니다. 그게 가능하다면 어딘가에서 전체를 게시 할 수 있습니다.
btw, 당신은 결국 ... 문제 해결 중에 스크롤 바가 있음을 발견했습니다. 그들은 중간 실행에서 일시 중지 된 스크립트로 디버그 모드를 제외하고는 볼 수 없었던 것처럼 잠깐 나타났습니다. 위의 변수와 함수를 제거한 후에도 일부 요소가 여전히 위치에서 벗어났습니다. 스크립트 단계의 순서와 관련이 있습니다. 이미지를 삽입하기 전에 삽입 된 이미지를 포함하는 div를 왼쪽으로 CSS를 다시 설정해야합니다. . 이야기에 대한 도덕적 인면 : 스크롤바가 길게 보이지 않아서 거기에 없었 음을 의미하지는 않습니다! –
나는 또한이 질문을 사용할 것이다 : http://stackoverflow.com/questions/2854407/javascript-jquery-window-resize-how-to-fire-after-the-resize-is-completed 그래서 한번 크기를 확인할 수있다. 이벤트가 완료되기 전에 이벤트가 완료되었습니다. 스크립트는 크기를 조정할 때마다 .resize() 함수에서 실행되는 스크립트를 실행하므로 더 나은 방법은 기다리는 것입니다. – MarkP