私はmousemoveとtouchmoveイベント(これはApple AppStore any app Screenshots sectionに似ています)を使ってdivコンテンツを水平方向にスクロールできるようにするため、私のウェブサイトの機能を作ろうとしています。私は最初の子供のための負の余白左のプロパティを設定することによってこれをやっています。モバイルデバイス上のユーザーが画面に触れるときやデスクトップ上で親divにカーソルを移動したときに、現在の位置からスクロールしていないコンテンツが「ジャンプ中」であることを除いて、すべてが機能しています。私は現在のmargin-left値を新しいpageX値に加えてこれをしようとしましたが、動作しません。私は間違っているの?または、この方法でこのようにすることはできませんか?Mouse&Touch horizontal div sliding
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
感謝。