>  기사  >  웹 프론트엔드  >  플로팅 레이어(플로팅 헤더, 푸터)가 모바일 단말기의 콘텐츠를 가리는 문제를 해결하는 3가지 방법_html5 튜토리얼 기술

플로팅 레이어(플로팅 헤더, 푸터)가 모바일 단말기의 콘텐츠를 가리는 문제를 해결하는 3가지 방법_html5 튜토리얼 기술

WBOY
WBOY원래의
2016-05-16 15:46:535195검색

오늘날 프런트 엔드 페이지, 특히 모바일 장치에서는

또는
, 그림과 같이 다음과 같습니다.

'답글 주제' 모듈은 페이지 플로팅을 따르며 항상 페이지 하단에 정지되어 있습니다. 코드 구조는 다음과 같습니다.


코드 복사
코드는 다음과 같습니다.

...

...

물론 이러한 기능을 구현하려면 position:fixed를 사용해야 합니다. 그러나 position:fixed 사용에는 버그가 있습니다. 하단의 플로팅

를 예로 들어 보겠습니다. 페이지가 하단으로 슬라이드되면 페이지가 벗어납니다. 고정된 위치로 인해 정상적인 문서 흐름이 발생하여 일부 내용이 가려집니다. 아래와 같이:

위 왼쪽이 문제 디스플레이, 오른쪽이 정상 디스플레이입니다. 그렇다면 이 문제를 해결하는 방법은 무엇입니까? 여기서는 더 나은 방법을 찾기 위해 제 의견 세 가지를 제시하고 싶습니다.

방법 1. Javasrript 솔루션

js를 사용하여 문제를 해결하세요. 슬라이더가 페이지 콘텐츠 하단으로 슬라이드되면 원래 문서 흐름에서 벗어나는 고정 위치를 문서 흐름에서 벗어나지 않는 상대 위치로 변경하세요.

스크립트를 사용하여 문제를 해결하는 것이 가장 어려운 방법입니다. CSS로 해결할 수 있다면 스크립트를 사용하지 마세요. 그래도 방법은 있습니다.

코드 복사
코드는 다음과 같습니다.

//스크롤바 Y축 스크롤 거리
function getScrollTop(){
return document.body.scrollTop;
}
//문서의 전체 높이
function getScrollHeight(){

Return document.body.clientHeight;
}
//브라우저 뷰포트 높이
function getWindowHeight(){
var windowHeight = 0;
if(document.compatMode == "CSS1Compat")
 {
 windowHeight = document.documentElement.clientHeight;
 }
else
{
🎜 > Return windowHeight;
}

//슬라이딩 모니터링
window.onscroll = function(){
//아래로 슬라이딩하면

의 높이가 60이라고 가정하여 바닥글이 아래쪽으로 설정됩니다. 🎜> if((getScrollHeight () - getScrollTop() - getWindowHeight()) > 61)
$('.footer').css('position','fixed')
else
$('.footer' ).css('위치','상대적');
}



방법 2. 몸체에 패딩 바닥 추가

html 태그에 padding-bottom 속성을 추가하면 일반적인 문서 흐름의 내용이 본문 하단에서 padding-bottom에 의해 설정된 거리가 됩니다.

단점은 모듈 재사용과 프로젝트 시작 후 CSS 파일을 자주 병합해야 한다는 점을 고려할 때 다른 페이지에 이 플로팅 블록이 필요하지 않으면 고정 위치 지정이 필요하지 않은 페이지에 부담을 준다는 것입니다. , 이 방법은 사용하지 않는 것이 좋습니다.



코드 복사
코드는 다음과 같습니다.
//높이를 가정합니다.
는 60px
body
{
padding-bottom:
}



방법 3. 형제 자리표시자

추가 개인적으로 이 방법이 가장 실용적이라고 생각합니다.

블록 외부에
블록을 추가합니다. ;div> 블록
와 동일한 높이로 설정하고 내용을 포함하지 않습니다. 이는 페이지 하단의
와 동일한 높이 공간을 차지하는 자리 표시자 효과를 가질 수 있습니다. , 페이지는 원래 아래쪽으로 미끄러집니다.
호버 블록은 자리 표시자 블록과 완벽하게 겹칩니다. 다른 페이지에는 영향을 미치지 않습니다. 코드는 다음과 같습니다.

유일한 단점은 의미론적이지 않고 실질적인 내용 없이 빈 태그를 추가한다는 것입니다.



코드 복사
코드는 다음과 같습니다.




위의 세 가지 방법은 제가 생각한 방법입니다. 제가 재능과 지식이 부족합니다. 혹시 글에 틀린 부분이나 더 좋은 방법이 있으면 알려주시면 감사하겠습니다.

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