웹 프론트엔드 JS 튜토리얼 페이지를 위아래로 스크롤하여 상단 탐색 위치를 변경하세요.

페이지를 위아래로 스크롤하여 상단 탐색 위치를 변경하세요.

Jul 22, 2017 am 09:22 AM
위아래로 슬라이드 맨 위

최근 한 디자이너의 디자인 효과 요구 사항이 있었는데 이는 다른 웹사이트에서도 구현되었습니다.

state1: 웹페이지가 아래로 스크롤되면 페이지 헤더 표시줄이 사라지고 상단 탐색 메뉴가 위로 이동합니다.

state2 : 웹페이지가 위로 올라갈 때 스크롤을 하면 페이지 헤더바가 나타나고, 상단 네비게이션이 네비게이션을 따라 아래로 이동합니다.

페이지에 이미 다음 기능이 포함되어 있습니다.

1. 팝업창이 뜰 때 팝업창 레이어는 스크롤이 가능하지만, 페이지 레이어에서는 스크롤이 불가능합니다. 이때 페이지의 body 요소와 html 요소의 오버플로 스타일 속성은 숨김으로 설정됩니다.

페이지 구조는 다음과 같습니다. header>head

페이지 하단

문제는 다음과 같습니다. 이벤트가 너무 자주 모니터링되어(거의 모바일 각 픽셀은 청취 이벤트를 실행해야 함) 요소가 표시되거나 숨겨질 때 깜박이는 문제가 발생하고 때로는 일부 요소가 앞뒤로 전환되는 경우도 있습니다.

이러한 문제를 해결하는 과정에서 제가 제안한 해결 방법은 다음과 같습니다.

1. 문서의 스크롤 다운 및 스크롤 업 이벤트를 각각 모니터링합니다.

2. 모니터링 과정에서 팝업이 발생하면 듣지 마세요.

3. 청취 이벤트 외부에 두 개의 변수를 선언합니다. 즉, allowedMonitorScrollDown = true, allowedMonitorScrollUp = true

(1). 현재 팝업 창이 표시되지 않으면, allowedMonitorScrollDown의 값이 true인지 확인하고, false인 경우 바로 돌아가서 true인 경우 allowedMonitorScrollDown을 false로 설정하고 상태를 전환합니다. state1로 타이머를 설정하고(js는 setTimeout 기능과 함께 제공됨) 2000밀리초 후에 allowedMonitorScrollDown을 true로 복원합니다. 이 설정은 2초마다 스크롤 다운 이벤트에 대해 하나의 리스너를 허용하는 것과 같습니다. 여기에는 또 다른 숨겨진 점이 있습니다. 페이지가 아래로 슬라이드될 때 상태 자체가 state1이면 해당 상태에 대한 작업이 수행되지 않습니다.

(2) 문서의 상향 스크롤을 모니터링하는 과정에서 현재 팝업창이 뜨지 않을 때, allowedMonitorScrollUp 값이 true인지 확인하고, false라면 바로 return하여 모니터링 과정을 빠져나갑니다. ; true인 경우, allowedMonitorScrollUp을 false로 설정하고 상태를 state2로 전환합니다. 타이머(js와 함께 제공되는 setTimeout 함수)를 설정하고 2000밀리초 후에 allowedMonitorScrollUp을 true로 복원합니다. 이 설정은 2초마다 스크롤 다운 이벤트에 대해 하나의 리스너를 허용하는 것과 같습니다. 여기에는 또 다른 숨겨진 점이 있습니다. 페이지가 위로 올라갈 때 상태 자체가 state2이면 해당 상태에 대한 작업이 수행되지 않습니다.

5. 위의 두 가지 상황이 간헐적으로 발생하는 것을 보완하기 위해 페이지 스크롤 막대가 상단 또는 하단에 도달했기 때문에 이 두 가지 극단적인 상황을 별도로 처리하려면 타이머를 사용해야 합니다.

(1), 페이지가 맨 위에 도달하면(팝업 창이 팝업되지 않고 문서의 scrollTop이 0임), 상태는 state1로 전환되어야 합니다.

(2), 페이지가 맨 아래로 나옵니다(팝 없음). -up 창이 팝업되고 문서의 scrollTop이 0과 같습니다. $(window).height()의 합이 $(document).height())와 정확히 같으면 상태를 state2로 전환해야 합니다. ;

주로 팝업창 팝업 여부를 확인하는 데 사용되는 jquery의 필터 기능을 사용했습니다. 스크롤 이벤트를 청취합니다(동등한 방법도 있습니다: 본문의 스크롤 막대 길이가 스크롤바 자체의 높이를 의미하는 것은 $("body")[0].scrollHeight==$( "body").height()) 이며, 배타적 잠금 개념을 사용하고 있습니다. 프로그램에서.

위 내용은 페이지를 위아래로 스크롤하여 상단 탐색 위치를 변경하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

휴대폰 화면이 미끄러지거나 건조해지면 어떻게 해야 하나요? 휴대폰 화면이 미끄러지거나 건조해지면 어떻게 해야 하나요? Dec 04, 2023 pm 03:51 PM

미끄러지거나 건조되기 어려운 휴대폰 화면에 대한 솔루션: 1. 화면을 정기적으로 청소합니다. 3. 손가락의 미끄러짐 강도를 높입니다. 4. 휴대폰 화면 보호 장치를 교체합니다. 6. 손을 촉촉하게 유지하십시오. 7. 필름을 붙일 때 깨끗하게 다루십시오. 8. 윤활제를 사용하십시오. 10. 화면 밝기를 조정하십시오. 자세한 소개: 1. 화면을 가습하고 화면 옆에 가습기를 두거나 물을 뿌려 공기 중 습도를 높여 화면의 건조함을 줄입니다. 2. 화면을 정기적으로 청소하고 전문 화면 세척제를 사용합니다.

JavaScript를 사용하여 이미지의 위아래 슬라이딩 전환 효과를 얻고 페이드인 및 페이드아웃 애니메이션을 추가하는 방법은 무엇입니까? JavaScript를 사용하여 이미지의 위아래 슬라이딩 전환 효과를 얻고 페이드인 및 페이드아웃 애니메이션을 추가하는 방법은 무엇입니까? Oct 20, 2023 am 11:19 AM

JavaScript는 어떻게 이미지의 위아래 슬라이딩 전환 효과를 달성하고 페이드인 및 페이드아웃 애니메이션을 추가할 수 있습니까? 웹 개발에서는 이미지 전환 효과를 구현해야 하는 경우가 많습니다. JavaScript를 사용하여 위아래 슬라이딩 전환을 구현하고 페이드인 및 페이드아웃 애니메이션 효과를 추가할 수 있습니다. 먼저, 여러 이미지를 포함하는 컨테이너가 필요합니다. HTML에서 div 태그를 사용하여 이미지를 호스팅할 수 있습니다. 예를 들어, "image-container"라는 ID를 가진 div를 생성합니다.

이미지를 위아래로 드래그하는 효과를 얻기 위해 JavaScript를 사용하는 방법은 무엇입니까? 이미지를 위아래로 드래그하는 효과를 얻기 위해 JavaScript를 사용하는 방법은 무엇입니까? Oct 18, 2023 am 09:09 AM

JavaScript는 어떻게 이미지를 위아래로 드래그하는 효과를 얻나요? 인터넷의 발달과 함께 사진은 우리의 삶과 일에 중요한 역할을 하고 있습니다. 사용자 경험을 향상시키기 위해 사진에 특수 효과나 대화형 효과를 추가해야 하는 경우가 많습니다. 그 중 사진을 위아래로 드래그하여 전환하는 효과는 매우 일반적이고 간단하며 실용적인 효과입니다. 이 기사에서는 JavaScript를 사용하여 이러한 효과를 얻는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 이미지를 표시하고 드래그를 구현하기 위한 HTML 파일을 만들어야 합니다.

HTML, CSS 및 jQuery: 슬라이딩 패널 효과 구현에 대한 기술 가이드 HTML, CSS 및 jQuery: 슬라이딩 패널 효과 구현에 대한 기술 가이드 Oct 27, 2023 pm 04:39 PM

HTML, CSS 및 jQuery: 슬라이딩 패널 효과 구현을 위한 기술 지침 모바일 장치의 인기와 웹 애플리케이션의 개발로 인해 널리 사용되는 상호 작용 방법인 슬라이딩 패널이 웹 디자인에서 점점 더 보편화되고 있습니다. 슬라이딩 패널 효과를 구현함으로써 제한된 공간에 더 많은 콘텐츠를 표시하고 사용자 경험을 향상시킬 수 있습니다. 이 기사에서는 HTML, CSS 및 jQuery를 사용하여 슬라이딩 패널 효과를 얻는 방법을 자세히 소개하고 구체적인 코드 예제를 제공합니다. HTML 구조 먼저 기본 HTML 구조를 만들어야 합니다.

jQuery 슬라이딩 이벤트 해석: 구현 원칙 및 주의사항 jQuery 슬라이딩 이벤트 해석: 구현 원칙 및 주의사항 Feb 27, 2024 am 10:57 AM

jQuery 슬라이딩 이벤트 해석: 구현 원칙 및 주의 사항 프론트 엔드 개발에서 슬라이딩 이벤트는 일반적으로 사용되는 대화형 작업 중 하나입니다. 슬라이딩 이벤트를 통해 캐러셀 전환 및 페이지 스크롤과 같은 기능을 구현할 수 있습니다. 널리 사용되는 JavaScript 라이브러리인 jQuery는 다양한 대화형 효과를 쉽게 얻을 수 있도록 다양한 슬라이딩 이벤트 처리 방법을 제공합니다. 이 글에서는 jQuery에서 슬라이딩 이벤트의 구현 원리와 주의사항을 자세히 살펴보고 구체적인 코드 예제를 제공합니다. 1. 시행원리

반응으로 슬라이딩을 구현하는 방법 반응으로 슬라이딩을 구현하는 방법 Dec 30, 2022 am 11:09 AM

반응에서 슬라이딩을 구현하는 방법: 1. onTouchStart 이벤트에서 터치를 찾고 식별자에 따라 새로운 터치 발생을 기록합니다. 2. onTouchMove 이벤트의 식별자에 따라 터치가 통과한 각 지점의 좌표를 기록합니다. onTouchEnd 이벤트에서 완료된 터치 이벤트를 찾은 다음 완료된 터치 이벤트가 교차하는 지점을 기준으로 수행할 동작을 계산합니다.

Vue를 사용하여 슬라이딩 캐러셀을 구현하는 방법 Vue를 사용하여 슬라이딩 캐러셀을 구현하는 방법 Nov 07, 2023 pm 12:59 PM

Vue는 대화형 웹 애플리케이션을 보다 쉽게 ​​구축하는 데 도움이 되는 인기 있는 JavaScript 프레임워크입니다. 오늘은 Vue를 사용하여 슬라이딩 캐러셀을 만드는 방법을 소개하겠습니다. VueCLI를 사용하여 새로운 Vue 프로젝트를 생성하고 Vue의 공식 캐러셀 구성 요소를 사용하여 슬라이딩 캐러셀 차트를 구현하겠습니다. 구체적인 단계는 다음과 같습니다. 1단계: VueCLI 설치 VueCLI를 설치하려면 먼저 Node.js를 설치해야 합니다. Node.js를 설치한 후

watchOS 10.2: 스와이프로 시계 모드를 변경하는 방법 watchOS 10.2: 스와이프로 시계 모드를 변경하는 방법 Dec 15, 2023 pm 11:15 PM

watchOS 10.2에서는 이전 watchOS 9에서 그랬던 것처럼 살짝 밀기 동작을 활성화하여 Apple Watch 시계 모드 간에 더 쉽게 전환할 수 있습니다. 이 작업이 어떻게 수행되었는지 알아보려면 계속 읽어보세요. Apple Watch를 오랫동안 사용하신 분이라면 간단한 스와이프 동작으로 디스플레이에서 시계 모드를 전환할 수 있었던 시절을 기억하실 것입니다. 이는 watchOS9의 기본 상호 작용이었지만 Apple은 watchOS10으로 업그레이드하면서 이 동작을 제거했습니다. 사용자들이 실수로 시계 모드를 변경하는 것이 너무 쉽다고 불평했기 때문에 Apple은 상호 작용을 변경했습니다. 하지만 이 문제를 겪어본 적이 없는 사람들을 위해 Apple은 이 문제를 더 어렵게 만들었습니다. 스와이프하기 전에 이 작업이 필요합니다.

See all articles