scroll() 이벤트 메서드

imjingu·2023년 7월 30일
0

개발공부

목록 보기
234/481

scroll() 이벤트 메서드
대상 요소의 스크롤바가 이동할 때마다 이벤트를 발송 시키거나
강제로 scroll이벤트를 발생시키는데 사용

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <title>Document</title>
    <script>
        /*
        
        */

        $(function() {
            $('.contentSecond').css({ marginTop: 100, opacity: 0});
            /* 
            
            */
           $(window).on('scroll', function() {
            // $(window).scrollTop() : 스크롤 바가 이동한 값
            // $('#content').position().top : 포지션 기준이 되는 요소를 기준으로 선택한 요소에서 위치
            console.log($(window).scrollTop());
            console.log($('#content').position().top);
            console.log('------------')
            if ($(window).scrollTop() >= $('#content').position().top - 400) { 
                // 윈도 전체 창에서 scrollTop-맨위가 content의 포지션의 top-400 위치보다 크거나 같을때 애니메이션 발생.
                $('.contentSecond').stop().animate({marginTop: 100, opacity:1 })
            }
            else {
                $('.contentSecond').css({marginTop: 100, opacity: 0 })
            }
           });
        });
    </script>
        <style>
            * { margin: 0;
            padding: 0;}
            article {
                max-width: 100%;
                width: 100vw;
                height: 2000px;
             }
            section article:nth-child(1) {
                background-color: aqua;
            }
            section article:nth-child(2) {
                background-color: rebeccapurple;
            }
            
            #content { height: 100%; }
            .contentFirst { font-size: 18px; }
            .contentSecond { margin-top: 100px; padding: 20px 0; background: #737d00; text-align: center; }
            .contentSecond span { color: #737d00; font-weight: bold; }
            </style>
    </style>   
</head>
<body>
    <section>
        <article></article>
        <article>
        <div id="content">
        <p class="contentFirst">글이 들어갑니다. </p>
        <p class="contentSecond">scroll 이벤트~</p>
        
        </div>
        </article>
     </section>
</body>
</html>

0개의 댓글