>웹 프론트엔드 >CSS 튜토리얼 >모바일에서 주소 표시줄이 숨겨지면 반응형 웹사이트의 배경 이미지가 점프하는 이유는 무엇입니까?

모바일에서 주소 표시줄이 숨겨지면 반응형 웹사이트의 배경 이미지가 점프하는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-05 14:04:14211검색

Why Does My Responsive Website's Background Image Jump When the Address Bar Hides on Mobile?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.