Frontend 🎨/Javascript

[Javascript] overflow를 이용한 row scroll

yundi 2024. 2. 26. 11:49

나의 퍼블리싱 실력을 알아보기 위해 진행된 테스트이다! 

진짜 개발자는 끝없이 공부를 해야 하는 것 같다.. 

🔍️ 구현해야할 부분

 

우선 내가 똑같이 퍼블리싱해야 할 부분이다. 보고 생각한건,, 처음이 고정이니까 overflow-x scroll을 이용해서 구현하면 되겠다! 라는 생각이 들었다.

🖼️ HTML

    <div id="content5">
        <div class="cont5-wrap">
            <div class="cont5-title">
                <h2 class="insta-title">인스타그램</h2>
            </div>
            <div class="insta-wrap" id="slider">
                <div class="insta-img">
                    <img src="인스타그램 이미지1.png" class="-insta">
                    <img src="인스타그램 이미지2.png" class="insta">
                    <img src="인스타그램 이미지3.png" class="insta">
                    <img src="인스타그램 이미지1.png" class="insta">
                    <img src="인스타그램 이미지2.png" class="insta">
                    <img src="인스타그램 이미지3.png" class="insta">
                    <img src="인스타그램 이미지1.png" class="insta">
                    <img src="인스타그램 이미지2.png" class="insta">
                    <img src="인스타그램 이미지2.png" class="insta">
                    <img src="인스타그램 이미지3.png" class="insta">
                </div>
            </div>
        </div>
    </div>

 

🎨 CSS

#content5 {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 140px 0 160px 0;
}

.insta-title {
    text-align: center;
    margin-bottom: 40px;
}

.insta-wrap {
    overflow-x: hidden;
}

.insta-img {
    display: flex;
    gap: 24px;
    width: 100%;
    margin-left: 54px;
    width: 1846px;
}

제일 상위 div를 width를 100%로 주고 하위 부분은 사용자에게 보여줄 만큼만 width를 정해 넘치는 부분은 가려주었다.

📃 Javascript

    //인스타 드래그 슬라이드
    var isMouseDown = false;
    var startX;
    var scrollLeft;
   
    var slider = document.getElementById('slider');
   
    slider.addEventListener('mousedown', (e) => {
        isMouseDown = true;
        startX = e.pageX - slider.offsetLeft;
        scrollLeft = slider.scrollLeft;
    });
   
    slider.addEventListener('mouseleave', () => {
        isMouseDown = false;
    });
   
    slider.addEventListener('mouseup', () => {
        isMouseDown = false;
    });
   
    slider.addEventListener('mousemove', (e) => {
        if (!isMouseDown) return;
        e.preventDefault();
        var x = e.pageX - slider.offsetLeft;
        var walk = x - startX;
        slider.scrollLeft = scrollLeft - walk;
    });

 결과

뿌듯하다 : )