728x90
반응형
마우스다운이벤트를 발생시켜 드래그시작 지점을 할당합니다.
@Listen('mousedown')
mousedown(ev) {
this.dragStart = ev.pageX;
}
그리고 마우스업 이벤트를 발생시켜 드래그끝 지점을 할당합니다.
@Listen('mouseup')
mouseup(ev) {
this.dragEnd = ev.pageX;
}
시작값과 끝값을 계산하여 변수에 할당 합니다.
let screenMove = this.dragStart - this.dragEnd;
그 값을 아래의 두 값과 함께 스크롤 이벤트에 할당합니다.
this.positionValue = this.el.shadowRoot.querySelector('.iscroll__container').scrollLeft;
가로스크롤을 싸고있는 컨테이너의 좌측좌표를 구하고
this.scrollTotal = this.el.shadowRoot.querySelector('.iscroll__inner').scrollWidth;
스크롤을 발생시키는 컨테이너의 총 길이를 구해서 다음의 함수로 이전의 계산의 값을 할당합니다.
private scrollMove(position, total, screenMove) {
let scrollbar = this.el.shadowRoot.querySelector('.iscroll__container');
if (position < 0) {
console.log('감소')
scrollbar.scrollTo({ left: screenMove });
} else {
console.log('증가')
scrollbar.scrollTo({ left: screenMove });
}
}
이렇게 하면 마우스로 드래그를 구현할 수 있습니다.
모바일은 touchstart, touchend를 사용하시면 됩니다.
SMALL
728x90
반응형
'공부하기' 카테고리의 다른 글
텍스트가 아닌 콘텐츠 접근성 체크항목 (4) | 2024.01.26 |
---|---|
스텐실 stencil 반응형 이벤트 처리 (131) | 2024.01.25 |
[stencil+html] <picture>의 사용 (4) | 2024.01.17 |
[stencil]Boolean Props (2) | 2024.01.12 |
[stencil] 에서 css연결하는 방법 (1) | 2024.01.12 |