1

スクロール イベント リスナーまたはタッチスタート イベント リスナーのいずれかを追加したいと考えています。最初に、以下のコードに示すように、タッチ イベントを使用してスクロール イベント リスナーを無効にしました。

window.addEventListener('scroll', scrollStart, false);
window.addEventListener('touchstart', touchStart, false);

function scrollMenu() {
    // do something
}

function touchStart(e) {
    window.removeEventListener('scroll', scrollStart);
    // do something
}

しかし、場合によっては、ページが読み込まれるとすぐにスクロール イベントがトリガーされることに気付きました。したがって、上記の方法は使用できません。イベントを追加せずにブラウザーがタッチ イベント リスナーをサポートしているかどうかを確認する別の方法はありますか?

4

2 に答える 2

4

Modernizr はあなたの問題を解決しますか? タッチ イベントを検出するさまざまな方法と、それぞれのブラウザーの互換性については、こちらの例を参照してください。

http://modernizr.github.com/Modernizr/touch.html

于 2012-07-21T09:28:44.777 に答える
3

に属性が存在するかどうかを確認できるはずです。ontouchstartwindow

if ("ontouchstart" in window) {
    window.addEventListener('touchstart', touchStart, false);
} else {
    window.addEventListener('scroll', scrollStart, false);
}

... ただし、これの x-browser-ness は確認できません。

于 2012-07-21T09:28:57.137 に答える