Developer Note/국비과정 수업내용 정리&저장

24년 09월 06일

DH_PARK 2024. 9. 8. 20:30

스크롤매직

<script src="//cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/ScrollMagic.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/plugins/debug.addIndicators.min.js"></script>

(스크롤매직 사용 CDN)

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="//cdnjs.cloudflare.com/ajax/libs/ScrollMagic/2.0.7/ScrollMagic.min.js"></script>

    <style>
        section {
            width: 1200px;
            height: 500px;
            margin: 20px;

            display: flex;
            justify-content: left;
            align-items: start;
            position: relative;
            border: 1px solid;
        }

        .ball {
            width: 100px;
            height: 100px;
            border-radius: 50%;
            border: 1px solid;

            position: relative;
            font-size: .8rem;

            display: flex;
            justify-content: center;
            align-items: center;
            transition: 1.2s;

        }

        .move {
            transform: translate(1100px, 400px) scale(1.5) rotate(360deg)
        }

        section:nth-child(3) {
            display: flex;
            justify-content: right;
            align-items: start;
        }

        section:nth-child(3) .ball {}

        .move2 {
            transform: translate(-1100px, -400px) rotate(360deg);
        }
    </style>
</head>

<body>

    <section></section>

    <section class="scroll-section scroll-spy first">
        <div class="ball">ball</div>
    </section>

    <section class="scroll-section scroll-spy second">
        <div class="ball">ball</div>
    </section>

    <section></section>

    <script>
        const spyedEls = document.querySelectorAll('.scroll-spy')

        const ball3El = document.querySelector('section:nth-child(3) .ball')

        spyedEls.forEach(el => {
            console.log(el)
            const ballEl = el.querySelector('.ball')
            if (el.classList.contains('first')) {
                new ScrollMagic
                    .Scene({
                        triggerElement: el,     //감시할 요소 선택
                        triggerHook: 0.5,     //스크롤의 위치값(0-1)
                    })
                .setClassToggle(ballEl, 'move')
                .addTo(new ScrollMagic.Controller())
                }

            } else if (el.classList.contains('second')) {
                {
                    new ScrollMagic
                        .Scene({
                            triggerElement: el,     //감시할 요소 선택
                            triggerHook: 0.5,     //스크롤의 위치값(0-1)
                        })
                    .setClassToggle(ballEl, 'move2')
                    .addTo(new ScrollMagic.Controller())
                }

            })

        // const spyedEl = document.querySelector('.scroll-spy');
        // const ballEl = document.querySelector('.ball')

        // const scrollMagicObject = new ScrollMagic
        //                 .Scene({
        //     triggerElement:spyedEl,     //감시할 요소 선택
        //     triggerHook:.5,     //스크롤의 위치값(0-1)
        // })
        // .setClassToggle(ballEl,'move')
        // .addTo(new ScrollMagic.Controller())
    </script>
</body>

</html>

오후에는 거의 다 다음주 월요일에 있을 시험을 대비해서 조별과제 만들기를 계속 진행했다.

'Developer Note > 국비과정 수업내용 정리&저장' 카테고리의 다른 글

24년 09월 10일  (6) 2024.09.12
24년 09월 09일  (1) 2024.09.10
24년 09월 05일  (1) 2024.09.08
24년 09월 04일  (0) 2024.09.05
24년 09월 03일  (0) 2024.09.05