사용자가 mousemove 및 touchmove 이벤트를 사용하여 div 컨텐츠를 가로로 스크롤 할 수있는 웹 사이트 기능을 만들려고합니다 (Apple AppStore any app Screenshots section과 유사 함). 나는 첫 번째 아이에게 음수 여백 왼쪽 속성을 설정하여이를 수행합니다. 모바일 장치의 사용자가 화면을 터치하거나 바탕 화면에서 부모 div로 커서를 이동하면 현재 위치에서 스크롤하지 않고 내용이 "뛰어 오르는"경우를 제외하고는 모두 작동합니다. 나는 현재 margin-left 값을 새로운 pageX 값에 추가하여이를 시도했지만 작동하지 않습니다. 내가 뭘 잘못하고있어? 아니면이 방법으로이 기능을 수행 할 수 없습니까?Mouse & Touch 수평 분할 슬라이딩
JS/바벨 코드 :
class Collage {
constructor(selector) {
this.selector = $(selector);
this.children = this.selector.children(':first-child');
this.selector.on('mousemove touchmove', this.onMove.bind(this));
}
onMove(event) {
const marginLeft = parseFloat(this.children.css('margin-left'));
let mouseX = event.pageX || -event.touches[0].pageX || -event.changedTouches[0].pageX;
const margin = calculateMargin(mouseX, 1);
this.children.css('margin-left', margin);
function calculateMargin(value, speed) {
let val = -value*speed;
return val <= 0 ? val : 0;
}
}
}
SCSS 코드 : 귀하의 답변에 미리
.collage {
overflow: hidden;
max-height: 300px;
white-space: nowrap;
font-size: 0;
img {
display: inline-block;
&:first-of-type {
margin-left: -20%;
}
}
}
내 fiddle
감사합니다.