<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Document</title><linkrel="stylesheet"href="./style.css"></head><body><divclass="clearfix navInner"id="nav"><h1class="logo">LOGO</h1><ulclass="menu_inner"><li>menu-1</li><li>menu-2</li><li>menu-3</li><li>menu-4</li></ul></div><divclass="contents"><h2>What is Loream Ipsum?</h2><p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Fuga dolores qui provident minima commodi hic dolor sint quisquam quibusdam recusandae. Facere consequatur incidunt laborum vitae earum, ducimus dignissimos eum illo.</p><p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Fuga dolores qui provident minima commodi hic dolor sint quisquam quibusdam recusandae. Facere consequatur incidunt laborum vitae earum, ducimus dignissimos eum illo.</p><p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Fuga dolores qui provident minima commodi hic dolor sint quisquam quibusdam recusandae. Facere consequatur incidunt laborum vitae earum, ducimus dignissimos eum illo.</p></div><divclass="top"id="to-top"><ahref="#0">Top ⬆️</a></div><script>
(function() {
let lastScrollY = 0;
constonScroll = () => {
const nav = document.querySelector('#nav');
const toTop = document.querySelector('#to-top');
const standard = 30;
if(window.scrollY > standard) { // 스크롤이 30px을 넘었을 때 1)
nav.classList.add('shadow');
toTop.classList.add('show');
} else { // 스크롤이 30px을 넘지 않을 때
nav.classList.remove('shadow');
toTop.classList.remove('show');
}
if(window.scrollY > lastScrollY) { // 스크롤 방향이 아랫쪽 일 때 2)
nav.classList.add('lift-up')
toTop.classList.add('show-right')
} else { // 스크롤 방향이 윗쪽 일 때
nav.classList.remove('lift-up')
toTop.classList.remove('show-right')
}
lastScrollY = window.scrollY; // scrollY프로퍼티 값을 lastScrollY변수에 담게 되니깐 2)의 조건식을 활용해서 스크롤 방향을 아랫쪽으로, 윗쪽으로 했는지 감지 할수 있게 된다.
}
window.addEventListener('scroll', onScroll);
})();
</script></body></html>
🎯 스크롤 방향 감지하기 설명
lastScrollY = window.scrollY; 를 활용해서 스크롤의 방향을 감지할 수 있습니다. 스크롤 이벤트를 이런식으로 활용할 수 있으니깐 참고하면 좋을 것 같습니다.