バニラJavaScriptで垂直スクロールを無効にし、水平スクロールで置き換えます。スクロール値を置き換えるときにブロックされます。私はそこに単純なシンプルなソリューションがあると信じています!水平スクロールで垂直スクロールを置き換えます。vanilla javascript
/* We define our function */
function replaceVerticalScrollByHorizontal() {
let scrollX = window.scrollX; /* Horizontal ➡️ */
let scrollY = window.scrollY; /* Vertical ⬇️ */
console.log({scrollX, scrollY});
if (scrollY !== 0) {
/* If there is a changement in verticalScroll ⬇️ */
const tempScrollY = scrollY; /* We create a temporary var to stock our scrollY value */
scrollX = scrollY; /* Horizontal = Vertical */
scrollY = 0; /* We reset the vertical because we don't want any vertical scroll */
window.scrollTo(scrollX, scrollY); /* We scroll to our value */
scrollY = tempScrollY; /* We replace the value of our vertical var with the temporary one */
}
/* If no verticalScroll changement, exit of this function ⬇️ */
return;
}
/* Listener on window once we start scrolling, we run our function */
window.addEventListener('scroll', replaceVerticalScrollByHorizontal);
私の問題で少しjsfiddleがあります:https://jsfiddle.net/zynj64m7/2/
ねえ!あなたの '解決策'をありがとうが、ホイールは他のスクロールタイプ(矢印キーのようなもの)を妨げないので、別のリスナーを追加することができますが、適切な方法は 'スクロール'イベントを使用することです。 :) ありがとうございました。 – Gouigoui
スクロールイベントの問題は、スクロールが既に発生した後にのみ発生することです。水平スクロールを修正しても、垂直スクロールを効果的にアンスクロールしてから水平スクロールする必要があるため、ジャッキーが表示されます。 – crapier
ありがとう!それは知らなかった ! :oこれを達成する方法は、異なるaddEventListenerを使用することです! – Gouigoui