我想爲我的網站,它允許用戶使用mousemove和touchmove事件(它類似於蘋果AppStore any app Screenshots section)水平滾動div內容功能。我通過爲第一個孩子設置一個負餘量屬性來做到這一點。除了當移動設備上的用戶觸摸屏幕或在桌面上將光標移動到父div時,所有內容都在工作,它的內容不是從當前位置滾動,而是「跳躍」。我試圖通過將當前的margin-left值添加到新的pageX值來實現此目的,但它不起作用。我做錯了什麼?或者也許這樣做不可能做到這個功能?鼠標和觸摸水平div滑動
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%;
}
}
}
預先感謝您的回答。