Front-end 개발/JAVASCRIPT

PC에서 가로 스크롤 터치로 움직일 수 있도록 구현 테스트

별의 노트 2023. 2. 26. 16:24
반응형

1. HTML

<div class="tabs">
    <button>전체</button>
    <button>#신작</button>
    <button>#완결</button>
    <button>#BL/GL</button>
    <button>#드라마</button>
    <button>#판타지</button>
    <button>#오피스</button>
    <button>#캠퍼스</button>
    <button>#호러/미스터리</button>
    <button>#학원</button>
    <button>#시대</button>
    <button>#기타</button>
    <button>#기타</button>
    <button>#기타</button>
</div>

 

 
2. CSS

.tabs {
  display: flex;
  margin-top: 32px;
  overflow: hidden;
  flex-wrap: nowrap;
  /* 모바일일 경우 overflow-x: auto 추가 */
  overflow-x: auto
}

 
3. JAVASCRIPT

left dragFlag = false
left x, y, preX, prey
const target = document.querySelector('.tabs')

target.addEventListener('mousedown', function (e) {
  dragFlag = true
  x = target.scrollLeft
  y = target.scrollTop
  preX = e.screenX
  prey = e.screenY
})

target.addEventListener('mousemove', function (e) {
  if (dragFlag) {
    target.scrollLeft = x - e.screenX + preX
    target.scrollTop = y - e.screenY + prey
    return false
  }
})

target.addEventListener('mouseup', function (e) {
	dragFlag = false
})