1)私は非常に普通のHTML5ウェブサイトを構築しています。htmlページのタッチイベントとマウスイベント
このウェブサイトには、クリック可能な要素はほとんどありません。それらはマルチレイヤーdivに組み込まれています。
HAMLように見える話す:私はいくつかのクリック可能なボタンを持っている私のdiv #content
で
%body
#root
#content
#header
#footer
。いくつかのドラッグ可能な要素。そしてビデオプレーヤー。
からclick
、mousemove
、mouseenter
などのマウスイベントの>このメイク使用...
2)私は追加したいまで
すべては大丈夫ですタッチジェスチャ検出を追加していますレイヤー(div)でタッチジェスチャーをキャッチします。冷却)、ウィンドウのこの#touch-area
サイズはtouchstart
を介してユーザのタッチジェスチャを解釈することが可能である
%body
#root
#content
#header
#footer
#touch-area
touchmove
、touchstop
3:
その後、私はこれを取得!私はマウスイベント
この構成の問題は、私はCSS
経由3.1)少数«ハックを»試したすべてのマウスイベントが#touch-area
によってキャッチされでのコントロールを失いますよ
追加pointer-events: none
~#touch-area
同時にタッチイベントを無効にします。
3.2)JSでは何が可能ですか?
読書Click through div。男はclick
リスナをトップdivに追加します。このdivを非表示にします。イベントを再トリガーします。 divを再表示します。
しかし:
- それはjQueryの
- を使用し、私は私が私の
#touch-area
3.3トラフ渡すようにしたいすべてのイベントを指定するためにしました)[OK]を、のはmousemove
に焦点を当ててみましょう
だから私はこれを読んだpost about HTML5 and touchscreen。しかし
1. touchstart 2. touchmove 3. touchend 4. mouseover 5. mousemove 6. mousedown 7. mouseup 8. click
と私:そして、私はこの興味深いイベントの順序を見つけ
- まず私は
#touch-area
へmousemove
listennerを追加します。私が隠す場所#touch-area
。 - すべてのイベントは実行されます。
- およびの場合は、タイムアウトルーチンを追加して、数ms後に
#touch-area
を表示します。それは再びイベントに触れること。
しかし、私はタッチスクリーンでスワイプします。まず、ほとんど検出しませんmousemove
。次に、配列touchstart
,touchmove
,touchstop
が発射される。
mouse enter 1490656039478 mouse move 1490656039479 mouse enter 1490656039483 mouse move 1490656039484 touch start 1490656039485 touch move 1490656039492 touch move 490656039498
(イベント時間続いイベント名)...のみがあります:私は私の指をスワイプするとき
#touch-area
にイベントのログを開始touch move
までtouch stop
私の計画が壊れているので:(
4)私を助けることができますか?
トップレイヤーでタッチジェスチャーを捕らえ、通常のクリック可能なボタンを鳴らす方法を教えてください。
mikro、私は本当にあなたの質問を作成する努力に感謝しますが、少なくとも私のために、あなたが求めているものは本当に明確ではありません。そして、私はそれを理解するためにあなたがリンクしたすべてのリソースを読む必要があるとは思わない。達成したいことを明確に述べてください。 20単語以内か?問題を理解するのに役立つと思われる場合は、[mcve]を提供することもありますか? –
jQueryを使用しないでこの['functionality'](http://stackoverflow.com/a/18642544/1891677)しますか?それはあなたの質問に答えますか? –
私は理解しています。なぜ私はポイント4で「シンプルな」質問を出そうとしているのですか?複雑さはポイント2で公開されているものの背後にあります。私は「最小限の例」と考えています。終了するには、ポイント3で試してみました。 – mickro