반응형
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
})
'Front-end 개발 > JAVASCRIPT' 카테고리의 다른 글
sveltejs 기본 셋팅 기록 (0) | 2023.04.09 |
---|---|
Vue directive - 버튼 외 다른 영역 클릭 시 함수 실행 테스트 (0) | 2023.01.27 |
Vue directive - for문 끝난 후 callback 처리 관련 테스트 (0) | 2023.01.27 |
숫자 comma (,) 포맷 적용 테스트 (0) | 2023.01.11 |
파일 용량 단위 포맷 적용 테스트 (Bytes, GB, MB 등) (0) | 2023.01.11 |