>웹 프론트엔드 >JS 튜토리얼 >웹 페이지 상단에 있는 고정 탐색 모음의 스크롤 및 숨기기 효과를 얻기 위해 JavaScript를 사용하는 방법은 무엇입니까?

웹 페이지 상단에 있는 고정 탐색 모음의 스크롤 및 숨기기 효과를 얻기 위해 JavaScript를 사용하는 방법은 무엇입니까?

WBOY
WBOY원래의
2023-10-16 08:58:41976검색

如何使用 JavaScript 实现网页顶部固定导航栏的滚动隐藏效果?

JavaScript를 사용하여 웹 페이지 상단에 있는 고정 탐색 모음의 스크롤 및 숨기기 효과를 얻는 방법은 무엇입니까?

오늘날의 인터넷 시대에 웹 디자인은 종종 사용자 경험과 페이지 기능의 무결성에 중점을 둡니다. 웹 내비게이션 바는 사용자와 웹 사이트를 연결하는 다리 역할을 하므로 일반적으로 내비게이션 바는 사용자가 필요한 정보를 빠르게 찾을 수 있도록 페이지 상단에 배치됩니다. 그러나 사용자가 웹을 탐색할 때 상단에 내비게이션 바를 오랫동안 표시하면 페이지 공간을 차지하여 사용자가 불편함을 느낄 수 있습니다. 따라서 사용자 경험을 향상시키기 위해 JavaScript를 사용하여 웹 페이지 상단에 고정된 탐색 모음의 스크롤 및 숨기기 효과를 구현할 수 있습니다.

이 효과를 얻는 방법은 스크롤 이벤트를 수신하고 스크롤 방향과 스크롤 거리를 기준으로 탐색 표시줄의 표시 및 숨김을 판단하는 것입니다. 다음은 샘플 코드입니다.

// 获取导航栏元素
const navBar = document.querySelector('.navbar');
// 定义初始滚动位置
let lastScrollTop = 0;
// 定义初始导航栏高度
const navBarHeight = navBar.offsetHeight;

// 监听滚动事件
window.addEventListener('scroll', function() {
    // 获取当前滚动位置
    const scrollTop = window.pageYOffset || document.documentElement.scrollTop;

    // 判断滚动方向
    if (scrollTop > lastScrollTop) {
        // 向下滚动,隐藏导航栏
        navBar.style.transform = `translateY(-${navBarHeight}px)`;
    } else if (scrollTop < lastScrollTop) {
        // 向上滚动,显示导航栏
        navBar.style.transform = 'translateY(0)';
    }

    // 更新滚动位置
    lastScrollTop = scrollTop;
});

위 코드는 먼저 document.querySelector('.navbar')를 통해 .navbar 클래스 이름을 가진 탐색 모음 요소를 가져옵니다. 다음으로 lastScrollTop 변수를 정의하여 마지막 스크롤 위치를 저장하고 navBar.offsetHeight를 사용하여 탐색 모음의 높이를 가져옵니다. document.querySelector('.navbar') 获取了具有 .navbar 类名的导航栏元素。接下来,我们定义了一个变量 lastScrollTop 用于存储上次滚动的位置,并且使用 navBar.offsetHeight 获取了导航栏的高度。

然后,我们通过 window.addEventListener('scroll', function() { ... }) 来监听滚动事件。在滚动事件的回调函数中,我们首先获取当前的滚动位置 scrollTop。接下来,通过判断当前滚动位置和上次滚动位置的大小关系,我们可以确定滚动的方向。

如果当前滚动位置大于上次滚动位置,则表示用户向下滚动,我们将导航栏向上隐藏。需要注意的是,我们通过设置 navBar.style.transformtranslateY 属性来实现导航栏的移动,将导航栏的高度(navBarHeight)作为位移参考,以保证导航栏完全隐藏。

相反,如果当前滚动位置小于上次滚动位置,则表示用户向上滚动,我们将导航栏重新显示。

最后,我们需要更新滚动位置 lastScrollTop

그런 다음 window.addEventListener('scroll', function() { ... })를 통해 스크롤 이벤트를 수신합니다. 스크롤 이벤트의 콜백 함수에서는 먼저 현재 스크롤 위치 scrollTop을 가져옵니다. 다음으로 현재 스크롤 위치와 마지막 스크롤 위치 사이의 크기 관계를 판단하여 스크롤 방향을 결정할 수 있습니다.

현재 스크롤 위치가 마지막 스크롤 위치보다 크면 사용자가 아래로 스크롤하고 탐색 표시줄을 위쪽으로 숨긴다는 의미입니다. navBar.style.transformtranslateY 속성을 ​​설정하여 탐색 막대를 이동하고 탐색 막대의 높이(navBarHeight)를 변경한다는 점에 유의해야 합니다. 코드>)를 변위 참조로 사용하여 탐색 모음이 완전히 숨겨지도록 합니다. 🎜🎜반대로, 현재 스크롤 위치가 마지막 스크롤 위치보다 작다면 이는 사용자가 위로 스크롤했다는 의미이며 탐색 표시줄을 다시 표시합니다. 🎜🎜마지막으로 다음 스크롤 이벤트에서 비교할 수 있도록 스크롤 위치 lastScrollTop를 업데이트해야 합니다. 🎜🎜위의 코드 예제를 통해 웹 페이지 상단에 있는 고정 탐색 표시줄의 스크롤 및 숨기기 효과를 얻을 수 있어 사용자의 탐색 경험이 향상됩니다. 물론 실제 필요에 따라 탐색 모음의 스타일과 효과를 일부 조정하고 개선하여 더 나은 사용자 상호 작용 효과를 얻을 수 있습니다. 🎜

위 내용은 웹 페이지 상단에 있는 고정 탐색 모음의 스크롤 및 숨기기 효과를 얻기 위해 JavaScript를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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