このコードは、ドキュメントをクリックしたときにマウスのスクロール機能を無効にしました。
$(document).on("click", function () {
window.onmousewheel = function (e) {
e.preventDefault();
}
});
ただし、これはFirefoxを除くすべてのブラウザで機能します。このコードをクロスブラウザとして作成する方法を教えてください。
このコードは、ドキュメントをクリックしたときにマウスのスクロール機能を無効にしました。
$(document).on("click", function () {
window.onmousewheel = function (e) {
e.preventDefault();
}
});
ただし、これはFirefoxを除くすべてのブラウザで機能します。このコードをクロスブラウザとして作成する方法を教えてください。
Firefoxはサポートしていません。代わりに、イベント.onmousewheel
を使用する必要があります。DOMMouseScroll
$(document).on( "mousewheel DOMMouseScroll", function(e){
e.preventDefault();
});
onmousewheel
Firefoxはこのイベントの名前をサポートしていません。DOMMouseScroll
代わりに、イベントでそれを行う必要があります。
onmousewheel
サポートされているかどうかを検出するには、次のようにします。
var cancelscroll = function(e) {
e.preventDefault();
};
if ("onmousewheel" in document) {
document.onmousewheel = cancelscroll;
} else {
document.addEventListener('DOMMouseScroll', cancelscroll, false);
}
DOM対応でこれを行う必要はないことに注意してください。ドキュメントはいつでもバインドできるため、すぐに行うことができます。
いずれの場合も、イベントリスナーを削除する方法を尋ねます。同様の条件付きでうまくいきます。
if ("onmousewheel" in document) {
document.onmousewheel = function() {};
} else {
document.removeEventListener('DOMMouseScroll', cancelscroll, false);
}
(新しい)標準化されたイベントを使用できますwheel
。ドキュメント:
これは、OSX(10.9.3)のFirefoxv29.0.1およびChromev35.0.1916.114で機能しますが、Safariv7.0.4では機能しないことがわかりました。