iOS/Android/Chrome 모바일에서 주소 표시줄이 숨겨지면 배경 이미지가 점프합니다
Twitter Bootstrap을 사용하는 반응형 웹사이트에서는 종종 배경이 iOS Safari, Android 브라우저 또는 Android용 Chrome에서 스크롤할 때 이미지가 이동하거나 점프합니다. 이는 주소 표시줄의 크기 조정 및 배경 이미지 컨테이너 div의 크기 변경으로 인해 발생합니다.
원인 및 해결 방법
범인은 고정 높이( 100%) 및 background-size: 배경 div를 덮습니다. 주소 표시줄이 줄어들면 포함된 요소의 높이가 변경되어 배경 이미지의 크기와 위치가 변경됩니다.
가능한 해결 방법 중 하나는 배경 div의 높이를 100vh(뷰포트 높이)로 설정하는 것입니다. 그러나 iOS에는 이 접근 방식이 일관되게 작동하지 못하게 하는 vh 버그가 있습니다.
또는 JavaScript를 사용하여 뷰포트 크기에 따라 배경 div에 정적 높이를 설정하는 것이 더 안정적인 솔루션입니다. 이 접근 방식은 버그가 있는 동작을 방지하고 스크롤하는 동안 이미지가 점프하는 것을 방지합니다. 다음 코드는 이 솔루션을 보여줍니다.
var bg = $("#bg1, #bg2"); function resizeBackground() { bg.height($(window).height()); } $(window).resize(resizeBackground); resizeBackground();
그러나 이 방법은 아래로 스크롤할 때 공백이 발생할 수 있습니다. 이를 완화하려면 스위스에서 제안한 대로 높이에 60px의 버퍼를 추가하는 것이 좋습니다.
function resizeBackground() { bg.height( $(window).height() + 60); }
이 솔루션은 주소 표시줄이 있을 때 일부 배경 콘텐츠의 가시성을 희생하지만 사용자가 스크롤하는 동안 공백이나 불일치가 발생하지 않습니다.
위 내용은 모바일에서 주소 표시줄이 숨겨지면 반응형 웹사이트의 배경 이미지가 점프하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!