ポインターイベント

各小屋には独自のおもちゃがあります



ある時点まで、フロントエンド開発者は、ユーザーインタラクション用に設計されたJavaScriptコードを作成するとき、「マウス」イベントのみに焦点を合わせていました。 その後、アプリケーションとのユーザーの対話の他の形式を使用するさまざまなデバイスが登場しました-センサーまたはペン。 各デバイスのイベントタイプは個別に提案されています。 そのため、mousedown、mousemoveなどに加えて、touchstart、touchmoveなどのイベントがありました。



このアプローチでは、新しいタイプのデバイスをサポートする代替機能が必要です。 アプリケーションが元々単一のデバイス用に設計されている場合、これはしばしば非互換性の問題を引き起こします。 さらに、後方互換性のために、タッチイベントを使用する現在のプラットフォームは、一部のマウスイベント(たとえば、マウスダウン)にも応答します。 これにより、このようなマウスイベントの使用があいまいになり、ユーザーが使用している特定のデバイスを特定する方法がなくなります。 さらに、タッチデバイスでのマウスイベントの操作には、いくつかの重大な違いがあります。





その結果、フロントエンド開発者は、アプリケーションを作成するときに、いくつかのタイプのイベント、デスクトップPC上のマウスイベント、およびタッチデバイス用のタッチイベントを処理する必要があります。 コードが面倒になり、開発プロセスが面倒になります..



夫と妻はサタンです



マイクロソフトは2012年9月に次のアイデアを提示しました。エンド開発者は、ユーザーがマウスでクリックするか、指でクリックするか、スタイラスでクリックするかをユーザーが操作するインターフェイスについて考えてはいけません。 その結果、いわゆるポインターイベント(MSPointerDown、MSPointerMoveなど)がInternet Explorer 10.0に表示され、すべてのデバイスで等しく動作するように設計されています。 このブラウザのこのタイプのイベントにはMSプレフィックスが付いているため、他のブラウザでは機能しません。



ポインターイベントは、既存のすべてのデバイスをサポートするだけでなく、MSPointerは、新しく作成されたデバイスをこのリストに簡単に追加できるように設計されており、既存のコードがそれらを自動的にサポートします。



ポインターイベントオブジェクトは、アプリケーションとのユーザーインタラクションの種類(マウス、タッチ、スタイラス)、ユーザーのデバイスとのタッチ接触領域のジオメトリ、筆圧、傾きを決定するのに役立つ追加のプロパティを提供します。 必要に応じて、開発者は入力デバイスごとに一意のコードを作成できます。



ポイントイベントのもう1つの大きな利点は、ポインティング(オーバーイベントとアウトイベント)をサポートしていることです。 現時点では、タッチ入力を備えたほとんどのデバイスには、これらのイベントの追跡を許可しないハードウェア制限があります。 ただし、2012年にソニーは、指を画面に持ち上げることで遠くからデバイスを制御できる「フローティングタッチ」 (フローティングタッチテクノロジー)を搭載した最初の携帯電話であるソニーXperia Solaを発表しました。 したがって、ポイントイベントは、開発者だけでなく製造業者にとってもクリーンなソリューションを提供します。



このアイデアはWWWコンソーシアムによって採用され、その結果、ポインターイベント標準が開発されました。これは、記事の執筆時点で「推奨候補」のステータスを持っています。 これは、W3Cメンバーがこの概念を承認したことを意味するものではなく、プロジェクトはいつでも置き換えることができます。 それでも、このドキュメントは開発中です。このタイプのイベントは、Internet Explorer 11(Internet Explorer 10.0およびIE Mobile 10.0のプレフィックス付き)でのみサポートされているにもかかわらず、さらに存在する可能性が高くなります。 Firefox 27.0、Chrome 33.0、Safari 6.0、Opera 18.0、iOS Safari 7.0、Opera Mini 7.0 Android Browser 4.4このタイプのイベントは、プレフィックスが付いていてもまだサポートしていません。



愛好家や、近い将来ポインターイベントを使用するクロスブラウザーの可能性を疑う人のために、2012年12月にMS Open Tech(Microsoftが管理する会社)は、WebKitエンジンのポインターイベントのプロトタイプを発表しました。 プロトタイプをダウンロードするだけでなく、 http://www.html5labs.comのドキュメントに慣れることができます



角で雄牛を取る



クロスブラウザーおよびクロスプラットフォームアプリケーションの開発者向けに、ポインターイベントを使用できるプラグインがいくつかあります。 たとえば、 CodePlexでホストされいるプラグインhand.js。 最新のすべてのブラウザーでほぼすべてのポイントイベントをサポートします。 Internet Explorerはバージョン9以降でサポートされています。 IE8以下に焦点を合わせている人のために-追加のコードを書く必要があります。



Internet Explorerは10番目のバージョンからサポートされているので、現時点ではpointereventsライブラリを考慮しません。これは、インターネットのロシア側にとっては十分ではありません。



jQueryライブラリーについても言及する必要があります。jQueryライブラリーの開発者は、ポインターイベントモデルの方が使いやすく、より有望であると考えています。 現時点では、ポイントイベントはjQueryで直接サポートされていませんが、もちろん、この欠点を修正することを目的としたjQuery PointerEventsプラグインがあります。



ご覧のとおり、ポインターイベントは今日適用できます。 そして、おそらく、数年後には、マウスイベントは過去のものになるでしょう...




All Articles