From 32ce5de47456ff5d8cb1b2d9163356ce27ffe955 Mon Sep 17 00:00:00 2001 From: MDN Date: Sun, 16 Jan 2022 00:57:29 +0000 Subject: [CRON] sync translated content --- files/fr/_redirects.txt | 3 +- files/fr/_wikihistory.json | 12 ++-- .../fr/conflicting/web/api/pointer_events/index.md | 57 ++++++++++++++++++ .../index.md | 58 ------------------ files/ja/_redirects.txt | 3 +- files/ja/_wikihistory.json | 14 ++--- .../conflicting/web/api/pointer_events/index.html | 68 ++++++++++++++++++++++ .../index.html | 67 --------------------- files/ru/_redirects.txt | 1 + files/ru/_wikihistory.json | 12 ++-- .../conflicting/web/api/pointer_events/index.html | 64 ++++++++++++++++++++ .../index.html | 63 -------------------- files/zh-cn/_redirects.txt | 1 + files/zh-cn/_wikihistory.json | 14 ++--- .../conflicting/web/api/pointer_events/index.html | 66 +++++++++++++++++++++ .../index.html | 65 --------------------- 16 files changed, 287 insertions(+), 281 deletions(-) create mode 100644 files/fr/conflicting/web/api/pointer_events/index.md delete mode 100644 files/fr/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.md create mode 100644 files/ja/conflicting/web/api/pointer_events/index.html delete mode 100644 files/ja/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html create mode 100644 files/ru/conflicting/web/api/pointer_events/index.html delete mode 100644 files/ru/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html create mode 100644 files/zh-cn/conflicting/web/api/pointer_events/index.html delete mode 100644 files/zh-cn/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html (limited to 'files') diff --git a/files/fr/_redirects.txt b/files/fr/_redirects.txt index 378d7d0b92..4f52dc802f 100644 --- a/files/fr/_redirects.txt +++ b/files/fr/_redirects.txt @@ -3723,6 +3723,7 @@ /fr/docs/Web/API/ServiceWorkerState /fr/docs/orphaned/Web/API/ServiceWorkerState /fr/docs/Web/API/Storage/LocalStorage /fr/docs/conflicting/Web/API/Window/localStorage /fr/docs/Web/API/StorageEstimate /fr/docs/conflicting/Web/API/StorageManager/estimate +/fr/docs/Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent /fr/docs/conflicting/Web/API/Pointer_events /fr/docs/Web/API/ULongRange /fr/docs/conflicting/Web/API/MediaTrackConstraints /fr/docs/Web/API/URL.createObjectURL /fr/docs/Web/API/URL/createObjectURL /fr/docs/Web/API/URLUtilsReadOnly /fr/docs/orphaned/Web/API/URLUtilsReadOnly @@ -4356,7 +4357,7 @@ /fr/docs/Web/Guide/DOM/Events/Creating_and_triggering_events /fr/docs/orphaned/Web/Guide/Events/Creating_and_triggering_events /fr/docs/Web/Guide/DOM/Events/Les_données_d_orientation_et_de_mouvement_expliquées /fr/docs/orphaned/Web/Guide/Events/Orientation_and_motion_data_explained /fr/docs/Web/Guide/DOM/Events/Touch_events /fr/docs/Web/API/Touch_events -/fr/docs/Web/Guide/DOM/Events/Touch_events/Gérer_à_la_fois_événement_tactile_et_événement_de_la_souris /fr/docs/Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +/fr/docs/Web/Guide/DOM/Events/Touch_events/Gérer_à_la_fois_événement_tactile_et_événement_de_la_souris /fr/docs/conflicting/Web/API/Pointer_events /fr/docs/Web/Guide/DOM/Manipuler l'historique du navigateur /fr/docs/Web/API/History_API /fr/docs/Web/Guide/DOM/Manipuler l'historique du navigateur/Example /fr/docs/Web/API/History_API/Example /fr/docs/Web/Guide/DOM/Manipuler_historique_du_navigateur /fr/docs/Web/API/History_API diff --git a/files/fr/_wikihistory.json b/files/fr/_wikihistory.json index e3685c3a97..14fc7b1eff 100644 --- a/files/fr/_wikihistory.json +++ b/files/fr/_wikihistory.json @@ -19566,12 +19566,6 @@ "SphinxKnight" ] }, - "Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent": { - "modified": "2019-03-18T21:33:21.001Z", - "contributors": [ - "CharlotteW" - ] - }, "Web/API/Transferable": { "modified": "2020-10-15T21:33:28.712Z", "contributors": [ @@ -43069,6 +43063,12 @@ "SphinxKnight" ] }, + "conflicting/Web/API/Pointer_events": { + "modified": "2019-03-18T21:33:21.001Z", + "contributors": [ + "CharlotteW" + ] + }, "conflicting/Web/API/Selection": { "modified": "2019-03-18T21:28:44.424Z", "contributors": [ diff --git a/files/fr/conflicting/web/api/pointer_events/index.md b/files/fr/conflicting/web/api/pointer_events/index.md new file mode 100644 index 0000000000..a29e9affce --- /dev/null +++ b/files/fr/conflicting/web/api/pointer_events/index.md @@ -0,0 +1,57 @@ +--- +title: Gérer à la fois événement tactile et événement de la souris +slug: conflicting/Web/API/Pointer_events +translation_of: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +original_slug: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +--- +{{DefaultAPISidebar("Touch Events")}} + +Les interfaces {{domxref("Touch_events","touch")}} permettent aux applications de créer de meilleures expériences utilisateurs sur les appareils tactiles. Pourtant, la grande majorité du contenu web actuel est développé pour fonctionner uniquement avec la souris. En conséquence, même si un navigateur supporte le tactile, le navigateur continue à *émuler* les événements de la souris, donc le contenu qui se veut fonctionner uniquement à la souris fonctionnera toujours *tel quel* sans modification directe. + +Idéalement, une application tactile n'a pas besoin de supporter explicitement la souris. Mais puisque le navigateur doit émuler les événements de la souris, il peut être nécessaire de gérer certains problèmes d'interaction. Ci-dessous, vous trouverez des détails concernant l'interaction et ses répercussions pour les développeurs d'application. + +## Déclenchement de l'événement + +La norme des événements tactiles définit quelques exigences envers les navigateurs concernant l'interaction tactile et souris (voir la section [_Interaction with Mouse Events and click_](https://w3c.github.io/touch-events/#mouse-events) pour plus de détails), noter que *le navigateur peut déclencher à la fois des événements tactiles et des événements de la souris en réponse à une seule et même entrée de l'utilisateur.* Cette section décrit les exigences pouvant affecter une application. + +Si le navigateur déclenche à la fois des événements tactiles et souris en réponse à une seule entrée d'un utilisateur, le navigateur *doit* déclencher un événement {{event("touchstart")}} avant tout événement de la souris. En conséquence, si une application ne veut pas que des événements de la souris soient déclenchés sur un élément {{domxref("Touch.target","target")}} spécifiquement tactile, le gestionnaire de l'événement tactile de l'élément devrait appeler {{domxref("Event.preventDefault()","preventDefault()")}} ainsi aucun événement additionnel de la souris sera envoyé. + +Voici un extrait de code du gestionnaire de l'événement {{event("touchmove")}} qui appelle `preventDefault()`. + +```js +// touchmove handler +function process_touchmove(ev) { + // Call preventDefault() to prevent any further handling + ev.preventDefault(); +} +``` + +## Ordre des événements + +Même si l'ordre spécifique des événements tactiles et souris est défini par l'implémentation, la norme indique que l'ordre suivant est _représentatif:_ pour une entrée : + +- `touchstart` +- Zero ou plus d'événements `touchmove`, suivant le mouvement de(s) doigt(s) +- `touchend` +- `mousemove` +- `mousedown` +- `mouseup` +- `click` + +Si l'événement {{event("touchstart")}}, {{event("touchmove")}} ou {{event("touchend")}} est annulé pendant une interaction, aucun événement de la souris ou du click sera déclenché, et la séquence des événements qui en résulte serait seulement : + +- `touchstart` +- Zero ou plus d'événements `touchmove`, suivant le mouvement de(s) doigt(s) +- `touchend` + +## Community + +- [Touch Events Community Group](https://github.com/w3c/touch-events) +- [Mail list](https://lists.w3.org/Archives/Public/public-touchevents/) +- [W3C #touchevents IRC channel](irc://irc.w3.org:6667/) + +## Related topics and resources + +- [Touch Events Overview](/Web/API/Touch_events) +- [Using Touch Events](/Web/API/Touch_events/Using_Touch_Events) +- [Touch and Mouse (Together Again for the First Time)](http://www.html5rocks.com/en/mobile/touchandmouse/) diff --git a/files/fr/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.md b/files/fr/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.md deleted file mode 100644 index d3ab597400..0000000000 --- a/files/fr/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Gérer à la fois événement tactile et événement de la souris -slug: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent -translation_of: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent -original_slug: >- - Web/Guide/DOM/Events/Touch_events/Gérer_à_la_fois_événement_tactile_et_événement_de_la_souris ---- -{{DefaultAPISidebar("Touch Events")}} - -Les interfaces {{domxref("Touch_events","touch")}} permettent aux applications de créer de meilleures expériences utilisateurs sur les appareils tactiles. Pourtant, la grande majorité du contenu web actuel est développé pour fonctionner uniquement avec la souris. En conséquence, même si un navigateur supporte le tactile, le navigateur continue à *émuler* les événements de la souris, donc le contenu qui se veut fonctionner uniquement à la souris fonctionnera toujours *tel quel* sans modification directe. - -Idéalement, une application tactile n'a pas besoin de supporter explicitement la souris. Mais puisque le navigateur doit émuler les événements de la souris, il peut être nécessaire de gérer certains problèmes d'interaction. Ci-dessous, vous trouverez des détails concernant l'interaction et ses répercussions pour les développeurs d'application. - -## Déclenchement de l'événement - -La norme des événements tactiles définit quelques exigences envers les navigateurs concernant l'interaction tactile et souris (voir la section [_Interaction with Mouse Events and click_](https://w3c.github.io/touch-events/#mouse-events) pour plus de détails), noter que *le navigateur peut déclencher à la fois des événements tactiles et des événements de la souris en réponse à une seule et même entrée de l'utilisateur.* Cette section décrit les exigences pouvant affecter une application. - -Si le navigateur déclenche à la fois des événements tactiles et souris en réponse à une seule entrée d'un utilisateur, le navigateur *doit* déclencher un événement {{event("touchstart")}} avant tout événement de la souris. En conséquence, si une application ne veut pas que des événements de la souris soient déclenchés sur un élément {{domxref("Touch.target","target")}} spécifiquement tactile, le gestionnaire de l'événement tactile de l'élément devrait appeler {{domxref("Event.preventDefault()","preventDefault()")}} ainsi aucun événement additionnel de la souris sera envoyé. - -Voici un extrait de code du gestionnaire de l'événement {{event("touchmove")}} qui appelle `preventDefault()`. - -```js -// touchmove handler -function process_touchmove(ev) { - // Call preventDefault() to prevent any further handling - ev.preventDefault(); -} -``` - -## Ordre des événements - -Même si l'ordre spécifique des événements tactiles et souris est défini par l'implémentation, la norme indique que l'ordre suivant est _représentatif:_ pour une entrée : - -- `touchstart` -- Zero ou plus d'événements `touchmove`, suivant le mouvement de(s) doigt(s) -- `touchend` -- `mousemove` -- `mousedown` -- `mouseup` -- `click` - -Si l'événement {{event("touchstart")}}, {{event("touchmove")}} ou {{event("touchend")}} est annulé pendant une interaction, aucun événement de la souris ou du click sera déclenché, et la séquence des événements qui en résulte serait seulement : - -- `touchstart` -- Zero ou plus d'événements `touchmove`, suivant le mouvement de(s) doigt(s) -- `touchend` - -## Community - -- [Touch Events Community Group](https://github.com/w3c/touch-events) -- [Mail list](https://lists.w3.org/Archives/Public/public-touchevents/) -- [W3C #touchevents IRC channel](irc://irc.w3.org:6667/) - -## Related topics and resources - -- [Touch Events Overview](/Web/API/Touch_events) -- [Using Touch Events](/Web/API/Touch_events/Using_Touch_Events) -- [Touch and Mouse (Together Again for the First Time)](http://www.html5rocks.com/en/mobile/touchandmouse/) diff --git a/files/ja/_redirects.txt b/files/ja/_redirects.txt index e2374896d4..40ffd7a36e 100644 --- a/files/ja/_redirects.txt +++ b/files/ja/_redirects.txt @@ -3257,6 +3257,7 @@ /ja/docs/Web/API/StorageEstimate/quota /ja/docs/conflicting/Web/API/StorageManager/estimate_78aa4ffd4dfacc8f94d5c05d150d36ac /ja/docs/Web/API/StorageEstimate/usage /ja/docs/conflicting/Web/API/StorageManager/estimate_9ffeea37c30a26922d3f1621912db8d8 /ja/docs/Web/API/TouchList.length /ja/docs/Web/API/TouchList/length +/ja/docs/Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent /ja/docs/conflicting/Web/API/Pointer_events /ja/docs/Web/API/UserProximityEvent.near /ja/docs/Web/API/UserProximityEvent /ja/docs/Web/API/UserProximityEvent/near /ja/docs/Web/API/UserProximityEvent /ja/docs/Web/API/VRDevice /ja/docs/Web/API/VRDisplay @@ -3913,7 +3914,7 @@ /ja/docs/Web/Guide/CSS/Using_multiple_backgrounds /ja/docs/Web/CSS/CSS_Backgrounds_and_Borders/Using_multiple_backgrounds /ja/docs/Web/Guide/DOM /ja/docs/Web/API/Document_Object_Model /ja/docs/Web/Guide/DOM/Events/Touch_events /ja/docs/Web/API/Touch_events -/ja/docs/Web/Guide/DOM/Events/Touch_events/Supporting_both_TouchEvent_and_MouseEvent /ja/docs/Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +/ja/docs/Web/Guide/DOM/Events/Touch_events/Supporting_both_TouchEvent_and_MouseEvent /ja/docs/conflicting/Web/API/Pointer_events /ja/docs/Web/Guide/DOM/Manipulating_the_browser_history /ja/docs/Web/API/History_API /ja/docs/Web/Guide/DOM/Manipulating_the_browser_history/Example /ja/docs/Web/API/History_API/Example /ja/docs/Web/Guide/DOM/Manipulating_the_browser_history/Working_with_the_History_API /ja/docs/Web/API/History_API/Working_with_the_History_API diff --git a/files/ja/_wikihistory.json b/files/ja/_wikihistory.json index 13890f904e..b55beced95 100644 --- a/files/ja/_wikihistory.json +++ b/files/ja/_wikihistory.json @@ -22513,13 +22513,6 @@ "Potappo" ] }, - "Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent": { - "modified": "2019-03-18T20:45:32.564Z", - "contributors": [ - "mfuji09", - "YuichiNukiyama" - ] - }, "Web/API/TrackEvent": { "modified": "2020-10-15T22:19:11.950Z", "contributors": [ @@ -48509,6 +48502,13 @@ "e53e04ac" ] }, + "conflicting/Web/API/Pointer_events": { + "modified": "2019-03-18T20:45:32.564Z", + "contributors": [ + "mfuji09", + "YuichiNukiyama" + ] + }, "conflicting/Web/API/StorageManager/estimate": { "modified": "2020-10-15T22:20:05.823Z", "contributors": [ diff --git a/files/ja/conflicting/web/api/pointer_events/index.html b/files/ja/conflicting/web/api/pointer_events/index.html new file mode 100644 index 0000000000..e3c50c41ac --- /dev/null +++ b/files/ja/conflicting/web/api/pointer_events/index.html @@ -0,0 +1,68 @@ +--- +title: TouchEvent と MouseEvent の両方をサポートする +slug: conflicting/Web/API/Pointer_events +tags: + - Guide + - TouchEvent + - touch +translation_of: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +original_slug: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +--- +

{{DefaultAPISidebar("Touch Events")}}

+ +

{{domxref("Touch_events","touch")}} インターフェースは、タッチできるデバイス 上で高いユーザーエクスペリエンスを生み出すアプリケーションを可能にします。しかし、ウェブコンテンツの大部分がマウス入力でだけ操作できるように設計されている現実があります。したがって、ブラウザがタッチをサポートしていても、マウス入力のみを想定したコンテンツを直接修正することなく従来通り動作させるために、ブラウザはまだマウスイベントをエミュレートしなくてはなりません。

+ +

理想的には、タッチベースのアプリケーションは、明示的にマウスの入力に対処する必要はありません。しかし、ブラウザはマウスイベントをエミュレートしなければならないので、処理しなければならない相互問題がいくつかあります。以下は開発者のためのイベントの動作と予期しない問題についての詳細です。

+ +

イベントの発火

+ +

タッチイベント標準は、タッチとマウスの動作に関するいくつかのブラウザ要件(詳細については Interaction with Mouse Events and click セクションを見てください)を定義しており、ブラウザは同じユーザー入力のレスポンスでタッチイベントとマウスイベントの両方を発火できると記述しています。このセクションでは、アプリケーションに影響を与える可能性がある要件について説明します。

+ +

ひとつのユーザー入力でブラウザがタッチイベントとマウスイベントの両方を発火した場合、ブラウザは何らかのマウスイベントの前に {{event("touchstart")}} を発火させなくては なりません。したがって、アプリケーションで特定のタッチ {{domxref("Touch.target","target")}} 要素でマウスイベントが発火させたくない場合、要素のタッチイベントハンドラーで {{domxref("Event.preventDefault()","preventDefault()")}} を呼び出し追加のマウスイベントが送出されないようにしなければなりません。

+ +

{{event("touchmove")}} イベントハンドラーで preventDefault() を呼び出すコードスニペットです。

+ +
// touchmove handler
+function process_touchmove(ev) {
+  // Call preventDefault() to prevent any further handling
+  ev.preventDefault();
+}
+
+ +

イベント順

+ +

特定のタッチイベントとマウスイベントの順序は実装依存ですが、標準仕様ではひとつの入力に対して次の順序が典型であるとしています。

+ + + +

{{event("touchstart")}} か {{event("touchmove")}}、{{event("touchend")}} が動作の間にキャンセルされた場合、mouse か click は発火されず、続くイベントは次のものだけになります:

+ + + +

コミュニティー

+ + + +

関連項目とリソース

+ + diff --git a/files/ja/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html b/files/ja/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html deleted file mode 100644 index c6a359ea78..0000000000 --- a/files/ja/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html +++ /dev/null @@ -1,67 +0,0 @@ ---- -title: TouchEvent と MouseEvent の両方をサポートする -slug: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent -tags: - - Guide - - TouchEvent - - touch -translation_of: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent ---- -

{{DefaultAPISidebar("Touch Events")}}

- -

{{domxref("Touch_events","touch")}} インターフェースは、タッチできるデバイス 上で高いユーザーエクスペリエンスを生み出すアプリケーションを可能にします。しかし、ウェブコンテンツの大部分がマウス入力でだけ操作できるように設計されている現実があります。したがって、ブラウザがタッチをサポートしていても、マウス入力のみを想定したコンテンツを直接修正することなく従来通り動作させるために、ブラウザはまだマウスイベントをエミュレートしなくてはなりません。

- -

理想的には、タッチベースのアプリケーションは、明示的にマウスの入力に対処する必要はありません。しかし、ブラウザはマウスイベントをエミュレートしなければならないので、処理しなければならない相互問題がいくつかあります。以下は開発者のためのイベントの動作と予期しない問題についての詳細です。

- -

イベントの発火

- -

タッチイベント標準は、タッチとマウスの動作に関するいくつかのブラウザ要件(詳細については Interaction with Mouse Events and click セクションを見てください)を定義しており、ブラウザは同じユーザー入力のレスポンスでタッチイベントとマウスイベントの両方を発火できると記述しています。このセクションでは、アプリケーションに影響を与える可能性がある要件について説明します。

- -

ひとつのユーザー入力でブラウザがタッチイベントとマウスイベントの両方を発火した場合、ブラウザは何らかのマウスイベントの前に {{event("touchstart")}} を発火させなくては なりません。したがって、アプリケーションで特定のタッチ {{domxref("Touch.target","target")}} 要素でマウスイベントが発火させたくない場合、要素のタッチイベントハンドラーで {{domxref("Event.preventDefault()","preventDefault()")}} を呼び出し追加のマウスイベントが送出されないようにしなければなりません。

- -

{{event("touchmove")}} イベントハンドラーで preventDefault() を呼び出すコードスニペットです。

- -
// touchmove handler
-function process_touchmove(ev) {
-  // Call preventDefault() to prevent any further handling
-  ev.preventDefault();
-}
-
- -

イベント順

- -

特定のタッチイベントとマウスイベントの順序は実装依存ですが、標準仕様ではひとつの入力に対して次の順序が典型であるとしています。

- - - -

{{event("touchstart")}} か {{event("touchmove")}}、{{event("touchend")}} が動作の間にキャンセルされた場合、mouse か click は発火されず、続くイベントは次のものだけになります:

- - - -

コミュニティー

- - - -

関連項目とリソース

- - diff --git a/files/ru/_redirects.txt b/files/ru/_redirects.txt index b6ded722e2..f32afa34e2 100644 --- a/files/ru/_redirects.txt +++ b/files/ru/_redirects.txt @@ -364,6 +364,7 @@ /ru/docs/Web/API/PositionError /ru/docs/Web/API/GeolocationPositionError /ru/docs/Web/API/PositionOptions /ru/docs/conflicting/Web/API/Geolocation/getCurrentPosition /ru/docs/Web/API/RandomSource/getRandomValues /ru/docs/Web/API/Crypto/getRandomValues +/ru/docs/Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent /ru/docs/conflicting/Web/API/Pointer_events /ru/docs/Web/API/USB/onconnect /ru/docs/Web/API/USB/connect_event /ru/docs/Web/API/USB/ondisconnect /ru/docs/Web/API/USB/disconnect_event /ru/docs/Web/API/WebGL_API/Adding_2D_content_to_a_WebGL_context /ru/docs/Web/API/WebGL_API/Tutorial/Adding_2D_content_to_a_WebGL_context diff --git a/files/ru/_wikihistory.json b/files/ru/_wikihistory.json index 1e6f4922fc..7a042b1535 100644 --- a/files/ru/_wikihistory.json +++ b/files/ru/_wikihistory.json @@ -10477,12 +10477,6 @@ "surrsoft" ] }, - "Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent": { - "modified": "2020-08-27T17:02:59.997Z", - "contributors": [ - "hisbvdis" - ] - }, "Web/API/Touch_events/Using_Touch_Events": { "modified": "2020-09-03T17:23:38.278Z", "contributors": [ @@ -24197,6 +24191,12 @@ "AlexAlex" ] }, + "conflicting/Web/API/Pointer_events": { + "modified": "2020-08-27T17:02:59.997Z", + "contributors": [ + "hisbvdis" + ] + }, "conflicting/Web/API/Push_API": { "modified": "2019-03-23T22:33:26.535Z", "contributors": [ diff --git a/files/ru/conflicting/web/api/pointer_events/index.html b/files/ru/conflicting/web/api/pointer_events/index.html new file mode 100644 index 0000000000..6752043059 --- /dev/null +++ b/files/ru/conflicting/web/api/pointer_events/index.html @@ -0,0 +1,64 @@ +--- +title: Поддержка TouchEvent и MouseEvent +slug: conflicting/Web/API/Pointer_events +translation_of: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +original_slug: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +--- +

{{DefaultAPISidebar("Touch Events")}}

+ +

Интерфейс {{domxref("Touch_events","touch")}} позволяет существенно повысить удобство работы с приложением через устройства с сенсорным экраном. Несмотря на это, большинство современного содержимого веба рассчитано только на работу с помощью мыши. Следовательно, даже если браузер поддерживает управление через сенсорную поверхность, он всё равно должен имитировать действия мыши, чтобы функциональность, рассчитанная только на действия мыши, продолжала корректно работать.

+ +

В идеале, приложения, рассчитанные на управление касаниями, не нуждается в явной имитации действий мыши. Но так как браузер вынужден это делать, могут возникнуть некоторые проблемы взаимодействия, которые должны быть обработаны. Ниже приведены некоторые подробности таких проблем взаимодействия и последствия для разработчиков приложения.

+ +

Вызов события

+ +

Спецификация событий касания определяет несколько требований к браузеру, касающихся действий мышью или касаний сенсорной поверхности (подробнее смотрите в разделе спецификации "Работа с событиями мыши и клика"), отмечая, что браузер может вызывать как события касаний, так и события мыши в ответ на одно и то же действие пользователя.

+ +

Если в ответ на какое-то действие пользователя браузер вызывает и событие касания и событие мыши, то перед любыми событиями мыши браузер должен вызывать {{event("touchstart")}}. Следовательно, если нужно, чтобы при прикосновении к {{domxref("Touch.target","целевому")}} элементу события мыши не запускались, в обработчике события касания данного элемента нужно вызвать {{domxref("Event.preventDefault()","preventDefault()")}}. После этого никакие дополнительные события мыши не вызовутся.

+ +

Ниже представлен пример обработчика события {{event("touchmove")}}, вызывающий preventDefault()

+ +
// touchmove handler
+function process_touchmove(ev) {
+  // Call preventDefault() to prevent any further handling
+  ev.preventDefault();
+}
+
+ +

Последовательность событий

+ +

Хотя фактическая последовательность событий касания и мыши зависит от используемого программного обеспечения, спецификация предписывает придерживаться следующей последовательности:

+ + + +

Если в течение взаимодействия событие {{event("touchstart")}}, {{event("touchmove")}} или {{event("touchend")}} прерывается, события мыши или клика вызываться не будут, а итоговая последовательность событий будет просто:

+ + + +

Сообщество

+ + + +

Связанные темы и ресурсы

+ + diff --git a/files/ru/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html b/files/ru/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html deleted file mode 100644 index d9f05fdec0..0000000000 --- a/files/ru/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Поддержка TouchEvent и MouseEvent -slug: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent -translation_of: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent ---- -

{{DefaultAPISidebar("Touch Events")}}

- -

Интерфейс {{domxref("Touch_events","touch")}} позволяет существенно повысить удобство работы с приложением через устройства с сенсорным экраном. Несмотря на это, большинство современного содержимого веба рассчитано только на работу с помощью мыши. Следовательно, даже если браузер поддерживает управление через сенсорную поверхность, он всё равно должен имитировать действия мыши, чтобы функциональность, рассчитанная только на действия мыши, продолжала корректно работать.

- -

В идеале, приложения, рассчитанные на управление касаниями, не нуждается в явной имитации действий мыши. Но так как браузер вынужден это делать, могут возникнуть некоторые проблемы взаимодействия, которые должны быть обработаны. Ниже приведены некоторые подробности таких проблем взаимодействия и последствия для разработчиков приложения.

- -

Вызов события

- -

Спецификация событий касания определяет несколько требований к браузеру, касающихся действий мышью или касаний сенсорной поверхности (подробнее смотрите в разделе спецификации "Работа с событиями мыши и клика"), отмечая, что браузер может вызывать как события касаний, так и события мыши в ответ на одно и то же действие пользователя.

- -

Если в ответ на какое-то действие пользователя браузер вызывает и событие касания и событие мыши, то перед любыми событиями мыши браузер должен вызывать {{event("touchstart")}}. Следовательно, если нужно, чтобы при прикосновении к {{domxref("Touch.target","целевому")}} элементу события мыши не запускались, в обработчике события касания данного элемента нужно вызвать {{domxref("Event.preventDefault()","preventDefault()")}}. После этого никакие дополнительные события мыши не вызовутся.

- -

Ниже представлен пример обработчика события {{event("touchmove")}}, вызывающий preventDefault()

- -
// touchmove handler
-function process_touchmove(ev) {
-  // Call preventDefault() to prevent any further handling
-  ev.preventDefault();
-}
-
- -

Последовательность событий

- -

Хотя фактическая последовательность событий касания и мыши зависит от используемого программного обеспечения, спецификация предписывает придерживаться следующей последовательности:

- - - -

Если в течение взаимодействия событие {{event("touchstart")}}, {{event("touchmove")}} или {{event("touchend")}} прерывается, события мыши или клика вызываться не будут, а итоговая последовательность событий будет просто:

- - - -

Сообщество

- - - -

Связанные темы и ресурсы

- - diff --git a/files/zh-cn/_redirects.txt b/files/zh-cn/_redirects.txt index 70c0330c9b..1a0110161e 100644 --- a/files/zh-cn/_redirects.txt +++ b/files/zh-cn/_redirects.txt @@ -1496,6 +1496,7 @@ /zh-CN/docs/Web/API/Touch.screenX /zh-CN/docs/Web/API/Touch/screenX /zh-CN/docs/Web/API/Touch.screenY /zh-CN/docs/Web/API/Touch/screenY /zh-CN/docs/Web/API/TouchEvent.changedTouches /zh-CN/docs/Web/API/TouchEvent/changedTouches +/zh-CN/docs/Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent /zh-CN/docs/conflicting/Web/API/Pointer_events /zh-CN/docs/Web/API/UIEvent/pageX /zh-CN/docs/conflicting/Web/API/MouseEvent/pageX /zh-CN/docs/Web/API/UIEvent/pageY /zh-CN/docs/conflicting/Web/API/MouseEvent/pageY /zh-CN/docs/Web/API/UIEvent/视图 /zh-CN/docs/Web/API/UIEvent/view diff --git a/files/zh-cn/_wikihistory.json b/files/zh-cn/_wikihistory.json index 5b817efe66..316c67967b 100644 --- a/files/zh-cn/_wikihistory.json +++ b/files/zh-cn/_wikihistory.json @@ -20645,13 +20645,6 @@ "meteorlxy" ] }, - "Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent": { - "modified": "2019-08-24T04:59:47.192Z", - "contributors": [ - "ouxuwen", - "meteorlxy" - ] - }, "Web/API/Touch_events/Using_Touch_Events": { "modified": "2019-03-23T22:09:03.982Z", "contributors": [ @@ -47197,6 +47190,13 @@ "AlexChao" ] }, + "conflicting/Web/API/Pointer_events": { + "modified": "2019-08-24T04:59:47.192Z", + "contributors": [ + "ouxuwen", + "meteorlxy" + ] + }, "conflicting/Web/API/Push_API": { "modified": "2019-03-23T22:26:22.995Z", "contributors": [ diff --git a/files/zh-cn/conflicting/web/api/pointer_events/index.html b/files/zh-cn/conflicting/web/api/pointer_events/index.html new file mode 100644 index 0000000000..7b579d5250 --- /dev/null +++ b/files/zh-cn/conflicting/web/api/pointer_events/index.html @@ -0,0 +1,66 @@ +--- +title: 同时支持触屏事件和鼠标事件 +slug: conflicting/Web/API/Pointer_events +translation_of: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +original_slug: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent +--- +

{{DefaultAPISidebar("Touch Events")}}

+ +

{{domxref("Touch_events","touch")}} 接口使得应用可以提高触屏设备上的用户体验。然而,现在绝大多数的web内容都是为鼠标操作而设计的。因此,即使浏览器支持触屏,也必须要模拟(emulate)鼠标事件,这样即使是那些只能接受鼠标输入的内容,也不需要进行额外修改就可以正常工作。

+ +

理想状态下,一个基于触屏的应用不需要去明确指定鼠标输入。然而,由于浏览器必须要模拟(emulate)鼠标事件,很有可能有一些特定的交互问题需要去处理。下面列出了这些交互的细节 ,并指导应用开发者该如何去处理它们。

+ +

事件触发

+ +

触摸事件标准定义了一些关于触摸和鼠标交互的浏览器要求(有关详细信息,请参阅与鼠标事件的交互和单击部分),注意浏览器可以触发触摸事件和鼠标事件以响应相同的用户输入。本节介绍可能影响应用程序的条件。

+ +

如果浏览器因单个用户输入而触发触摸和鼠标事件,则浏览器必须在任何鼠标事件之前触发{{event("touchstart")}}。因此,如果应用程序不希望在特定触摸{{domxref("Touch.target","target")}} 元素上触发鼠标事件,则元素的触摸事件处理程序应调用{{domxref("Event.preventDefault()","preventDefault()")}}并且不会调度其他鼠标事件。

+ +

这是{{event("touchmove")}}事件处理程序调用的代码片段

+ +

preventDefault().

+ +
// touchmove handler
+function process_touchmove(ev) {
+  // Call preventDefault() to prevent any further handling
+  ev.preventDefault();
+}
+
+ +

事件顺序

+ +

虽然触摸和鼠标事件的特定顺序是根据实际情况而定的,但标准表明事件执行顺序是固定的:对于单个输入:

+ + + +

如果 {{event("touchstart")}}, {{event("touchmove")}} 或者 {{event("touchend")}} 在触摸的过程中触发了touchcancel事件,后面的鼠标事件将不会被触发,由此产生的事件序列只是:

+ + + +

社区

+ + + +

相关主题和资源

+ + diff --git a/files/zh-cn/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html b/files/zh-cn/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html deleted file mode 100644 index 99f5ee55f7..0000000000 --- a/files/zh-cn/web/api/touch_events/supporting_both_touchevent_and_mouseevent/index.html +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: 同时支持触屏事件和鼠标事件 -slug: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent -translation_of: Web/API/Touch_events/Supporting_both_TouchEvent_and_MouseEvent ---- -

{{DefaultAPISidebar("Touch Events")}}

- -

{{domxref("Touch_events","touch")}} 接口使得应用可以提高触屏设备上的用户体验。然而,现在绝大多数的web内容都是为鼠标操作而设计的。因此,即使浏览器支持触屏,也必须要模拟(emulate)鼠标事件,这样即使是那些只能接受鼠标输入的内容,也不需要进行额外修改就可以正常工作。

- -

理想状态下,一个基于触屏的应用不需要去明确指定鼠标输入。然而,由于浏览器必须要模拟(emulate)鼠标事件,很有可能有一些特定的交互问题需要去处理。下面列出了这些交互的细节 ,并指导应用开发者该如何去处理它们。

- -

事件触发

- -

触摸事件标准定义了一些关于触摸和鼠标交互的浏览器要求(有关详细信息,请参阅与鼠标事件的交互和单击部分),注意浏览器可以触发触摸事件和鼠标事件以响应相同的用户输入。本节介绍可能影响应用程序的条件。

- -

如果浏览器因单个用户输入而触发触摸和鼠标事件,则浏览器必须在任何鼠标事件之前触发{{event("touchstart")}}。因此,如果应用程序不希望在特定触摸{{domxref("Touch.target","target")}} 元素上触发鼠标事件,则元素的触摸事件处理程序应调用{{domxref("Event.preventDefault()","preventDefault()")}}并且不会调度其他鼠标事件。

- -

这是{{event("touchmove")}}事件处理程序调用的代码片段

- -

preventDefault().

- -
// touchmove handler
-function process_touchmove(ev) {
-  // Call preventDefault() to prevent any further handling
-  ev.preventDefault();
-}
-
- -

事件顺序

- -

虽然触摸和鼠标事件的特定顺序是根据实际情况而定的,但标准表明事件执行顺序是固定的:对于单个输入:

- - - -

如果 {{event("touchstart")}}, {{event("touchmove")}} 或者 {{event("touchend")}} 在触摸的过程中触发了touchcancel事件,后面的鼠标事件将不会被触发,由此产生的事件序列只是:

- - - -

社区

- - - -

相关主题和资源

- - -- cgit v1.2.3-54-g00ecf