스크롤내리다 특정 dom부터 사라지게
본문 바로가기

Frontend/모던자바스크립트

스크롤내리다 특정 dom부터 사라지게

A버튼은 붕떠있고 하단에 B버튼이있다.

스크롤시 겹치는순간이후부터 A버튼이 사라지는 코드를 구현하였다.

 

스크롤이벤트안에 스크롤높이를 감지할수있는 window.scrollY와

B버튼의 위치(offsetTop)을 사용하였다.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        body {
            height: 200vh;
            margin: 0;
        }

        .button {
            position: fixed;
            top: 20px;
            left: 50%;
            transform: translateX(-50%);
            padding: 10px 20px;
            background-color: #007bff;
            color: #fff;
            border: none;
            border-radius: 5px;
        }

        #buttonB {
            padding: 10px 20px;
            background-color: #007bff;
            color: #fff;
            border: none;
            border-radius: 5px;
        }
    </style>
    <title>Scroll Button Example</title>
</head>

<body>
    <button class="button" id="buttonA">A 버튼</button>
    <div style="height: 50vh;"></div>
    <button class="" id="buttonB">B 버튼</button>

    <script>
        const buttonA = document.getElementById('buttonA');
        const buttonB = document.getElementById('buttonB');

        window.addEventListener('scroll', function () {
            const scrollPosition = window.scrollY;

            // B버튼이 보이고 있는 위치
            const buttonBRange = buttonB.offsetTop
            console.log(scrollPosition, buttonBRange)

            if (scrollPosition >= buttonBRange) {
                buttonA.style.display = 'none';
            } else {
                buttonA.style.display = 'block';
            }
        });
    </script>
</body>

</html>
반응형