純粋なJSでユーザの「タップ」イベントをキャプチャするにはどうすればよいですか?私は残念ながら、ライブラリを使用することはできません。純粋なJavaScriptで「タップ」イベントをキャプチャする
答えて
click
イベントは、マウスのクリックだけでなくタッチのクリックでトリガーされます。
touchstart
イベントは、画面に触れるとトリガーされます。
タッチが終了すると、touchend
イベントがトリガーされます。デフォルトのアクションが防止されている場合、click
イベントはトリガーされません。
これは私のコードではありませんが、どこから得たのか覚えていません。正常に使用されました。これはjQueryを使用しますが、タップ処理のための余分なライブラリやプラグインはありません。
$.event.special.tap = {
setup: function(data, namespaces) {
var $elem = $(this);
$elem.bind('touchstart', $.event.special.tap.handler)
.bind('touchmove', $.event.special.tap.handler)
.bind('touchend', $.event.special.tap.handler);
},
teardown: function(namespaces) {
var $elem = $(this);
$elem.unbind('touchstart', $.event.special.tap.handler)
.unbind('touchmove', $.event.special.tap.handler)
.unbind('touchend', $.event.special.tap.handler);
},
handler: function(event) {
event.preventDefault();
var $elem = $(this);
$elem.data(event.type, 1);
if (event.type === 'touchend' && !$elem.data('touchmove')) {
event.type = 'tap';
$.event.handle.apply(this, arguments);
} else if ($elem.data('touchend')) {
$elem.removeData('touchstart touchmove touchend');
}
}
};
$('.thumb img').bind('tap', function() {
//bind tap event to an img tag with the class thumb
}
私はこれをiPad専用のプロジェクトに使用していたため、デスクトップとタブレットの両方で作業するには調整が必要な場合があります。
このコードは、通常のクリックハンドラを使用して取得するタップラグも回避します。 – Kayo
これは純粋なJSではありませんので、質問には答えません。 –
touchstart
、touchend
や他のイベントがあります。あなたはこの方法でそれらのイベントリスナーを追加することができます:あなたはMDN webstite上で見つけることができるネイティブDOMイベントに関する
var el = document.getElementById('test');
el.addEventListener('touchstart', touchHandler);
詳しい情報を。
私はちょっとしたスクリプトを書いています。それは純粋なJSではなく、私のためにうまく動作します。 スクロール時にスクリプトを実行することを防ぎます。つまり、スクリプトは 'tap'イベントでのみ起動します。
$(element)
.on('touchstart', function() {
$(this).data('moved', '0');
})
.on('touchmove', function() {
$(this).data('moved', '1');
})
.on('touchend', function() {
if($(this).data('moved') == 0){
// HERE YOUR CODE TO EXECUTE ON TAP-EVENT
}
});
"純粋なJS"と "私はライブラリを使用できません"についての質問は明らかです – ByScripts
これは私を助けてくれました... –
- 1. ASP.NETで純粋なJavascriptアプリケーション
- 2. 純粋なJavascriptアプリ+ Amazon S3?
- 3. 純粋なJavascriptでの要素座標
- 4. 純粋なjavascriptのアニメーション、jqueryなし
- 5. 純粋なJavascriptを使用して要素にイベントをバインドします。
- 6. 純粋なJavascriptのデータ投稿
- 7. ツールチップが必要[純粋なjavascript]
- 8. オープンソースのscorm player純粋なjavascriptとhtml?
- 9. 純粋なJavascriptまたはプロトタイプベースのフリータイムラインライブラリ
- 10. ダイナミックリンク作り、純粋なJavaScriptの
- 11. Apple Javascriptスプリットフラップカウンタを純粋なCSSで実行する方法
- 12. 純粋なjavascriptでli幅を取得するには?
- 13. 純粋なPython環境でJavaScriptを実行する
- 14. 純粋なJavaScriptでpic-viewerを作成する際の問題
- 15. 純粋なJavaScriptを使用してイベントのselect要素値を取得
- 16. Javascriptで "control" keydown pressイベントをキャプチャする
- 17. 純粋な関数が純粋な意味を返すのは何ですか?
- 18. xulアプリケーションで使用できるmongodbの純粋なjavascriptドライバ
- 19. 純粋なangularjsスクロールイベントリスナー
- 20. 純粋なCSSスライダー
- 21. 純粋なPHPトレントクライアント?
- 22. 純粋なCSSリニアグラデーションボーダー
- 23. 最も高速で純粋なJavascript、Graphビジュアライゼーションツールキットは何ですか?
- 24. ノードサーバー(node_server.js)を作成するには、純粋なjavascriptファイル
- 25. jqueryから純粋なjavascriptにコードを変換する
- 26. グラフを表示するための純粋なJavascriptライブラリ
- 27. div内のコンテンツをラップする純粋なjavascriptメソッド
- 28. tweetBoxなしでtweetBoxを投稿する方法、純粋なjavascriptで
- 29. 純粋なブラウザ内JavaScriptテストフレームワークとは何ですか?
- 30. 純粋なjavascriptのDOM実装ですか?
なぜタグが付けられたCSSですか? –
スピードのために。ごめんなさい。 –