私は純粋なjavascriptを使用して非常に単純な水平スライダーを作成しようとしていますが、jqueryのようなライブラリは必要ありません。タスクは最初は簡単に思えましたが、問題が発生しました。私はoffsetX
プロパティから正しい場所にハンドラを設定するための読み取り値を取得しようとしています。問題は、トラック上でハンドラをスライディングしているときに、時にはイベントターゲットを切り替え、ハンドラからスライダコンテナに移動するために読み値を変更することです。このプロセス全体の視覚効果は最良ではありません。シンプルなjsスライダー、ofssetXの読み込みが不安定になる
これは私がこれを構築する方法である:
<div class="slider">
<div class="track">
<div class="handler"></div>
</div>
</div>
と背後にあるコード:
var dragging = false;
document.querySelector('.slider').onmousemove = function(event) {
if(dragging) {
document.querySelector('.handler').style.left = (event.offsetX - 15) + 'px';
}
};
document.querySelector('.handler').onmousedown = function(event) {
dragging = true;
};
window.onmouseup = function(event) {
dragging = false;
}
私は、そのソリューションは、ハンドラから(誤った読みからのイベントを防ぐためだと思いますまたはトラック)を使用し、常にスライダのdivに対するマウスの位置のみを使用します。しかし、それをどうやって私はまだ知りません。誰ですか? ;)
;)協力いただきありがとうございます。) – Mevia