developer tip

모바일 크롬이 스크롤시 크기 조정 이벤트를 발생시킵니다.

copycodes 2020. 11. 8. 10:13
반응형

모바일 크롬이 스크롤시 크기 조정 이벤트를 발생시킵니다.


나는 galaxy s4, android 4.2.2에서 크롬 모바일 브라우저를 사용하고 있으며 어떤 이유로 페이지를 아래로 스크롤 할 때마다 jquery.cycle2 슬라이드 쇼의 이미지 크기 조정으로 확인 된 크기 조정 이벤트가 발생합니다.

왜 이런 일이 일어나는지 아십니까?


호기심을 위해 나는 그것을 재현하려고 노력했고 내가 맞다면 이것은 탐색 크롬 막대로 인한 것입니다.

아래로 스크롤하고 크롬이 브라우저 내비게이션 바를 숨기면 창 크기가 조정되지만, 그 후에는 브라우저 내비게이션 바에 남아있는 여유 공간으로 인해 더 큰 창 크기가 생기기 때문에 이것은 정확합니다.

관련 문서 : https://developers.google.com/web/updates/2016/12/url-bar-resizing

문안 인사!


이상하게 들리지만 다른 브라우저에서 본 적이 있습니다. 이와 같이이 문제를 해결할 수 있습니다.

var width = $(window).width(), height = $(window).height();

그런 다음 크기 조정 이벤트 핸들러에서 할 수 있습니다.

if($(window).width() != width || $(window).height() != height){
  //Do something
}

나는 당신의 기능의 범위와 모든 것을 모르지만 이것에서 요점을 얻어야합니다.


나는 그것이 여전히 흥미 롭다는 것을 모르지만 내 해결책은 :)

var document_width, document_height;

$(document).ready(function()
{
	document_width=$(document).width(); document_height=$(document).height();
    // Do something
}

$(window).resize(function()
{
    if(document_width!=$(document).width() || document_height!=$(document).height()) 
    {
        document_width=$(document).width(); document_height=$(document).height();
        // Do something
    }
}	


질문은 이미 답변되었지만이 질문은 반응 형 사이트에 대한 질문을 제기하지 않기 때문에 이에 대한 정보를 추가하고 싶습니다.

반응 형 웹 사이트를 개발할 때 Android의 Chrome에서이 문제가 발생했습니다. 창 크기를 조정할 때 적절한 위치가 필요한 일부 디자인 요소로 인해 메뉴를 숨기고 싶지만 스크롤시 크기 조정 이벤트를 트리거하는 Android 용 Chrome 동작으로 인해 다소 어려워졌습니다.

onOrientationChange를 사용하여 시작하도록 전환하는 것은 반응 형 사이트이기 때문에 옵션이 아니 었습니다. 데스크톱 PC에는 방향 변경이 없지만 일반 PC, 태블릿 및 스마트 폰에서 작동하려면 코드가 여전히 필요했습니다.

브라우저 스니핑 등을 시작할 수 있었지만 지금까지는 피할 수있었습니다 ..

나는 CWitty가 제안한 솔루션을 구현하려고 시도했지만 실제로 위아래로 스크롤하면 작동하지 않는 높이 변경이 트리거되기 때문에.

높이가 변경 될 때가 아니라 너비가 변경 될 때만 메뉴를 숨기는 조건을 추가했습니다. 너비가 변경 될 때만 메뉴를 다시 작성하면되기 때문에 이것은 제 경우에 작동합니다.


모바일 장치의 브라우저는 누군가가 아래로 스크롤 할 때 가로 상단 탐색 막대를 숨기고 위로 스크롤하면 다시 표시하는 경우가 많습니다. 이 동작은 클라이언트의 크기에 영향을 주어 resize 이벤트를 발생시킵니다. 높이 변경 또는 적어도 높이 변경으로 인해 코드를 실행하지 않는 것을 제어하면됩니다.


이것은 스크롤 모바일에서 Javascript 크기 조정 이벤트와 중복됩니다.

이를 수정하려면 onOrientationChange 및 window.orientation 속성을 사용하십시오. 관련 답변보기 : 여기


resize다양한 모바일 브라우저에서 실행될 수있는 것들이 많이 있습니다 .

외부 리소스에 연결하는 것이 이상적이지 않다는 것을 알고 있지만 QuirksMode에는 http://www.quirksmode.org/dom/events/resize_mobile.html 에서 복제 (또는 유지)하고 싶지 않은 읽을 수있는 테이블이 있습니다.

예를 들어 보자면, 많은 브라우저에서 소프트 키보드를 열면 이벤트가 발생합니다.

참고 URL : https://stackoverflow.com/questions/17328742/mobile-chrome-fires-resize-event-on-scroll

반응형