PowerTools InputMan for ASP.NET 8.0J > InputMan for ASP.NETの使い方 > タッチ機能 > クライアント側イベント |
InputMan for ASP.NETの各コントロールでも、Internet Explorer 10以降、標準でサポートされているタッチに特化したクライアント側イベントを使用できます。
Internet Explorer 11以降では、ポインターイベントがW3C仕様に更新されました。これによりMSベンダープレフィックスが削除されています。たとえば、ポインターを置いたときに発生するonmspointerdownイベントは、onpointerdownと変更されています。 |
<ClientEvents>
<StandardClientEvents onmspointerdown="GcDateTime1_onmspointerdown"></StandardClientEvents>
</ClientEvents>
GcDateTime1.ClientEvents.StandardClientEvents.onmspointerdown = "GcDateTime1_onmspointerdown"
GcDateTime1.ClientEvents.StandardClientEvents.onmspointerdown = "GcDateTime1_onmspointerdown";
function GcDateTime1_onmspointerdown(evt) { // IE11以降 if(navigator.pointerEnabled) { switch (evt.pointerType) { case "touch": // 指が置かれたとき、背景色を黄色にします。 FindIMControl(evt.currentTarget.id).SetBackColor("yellow"); break; case "pen": // ペンが置かれたとき、背景色を緑にします。 FindIMControl(evt.currentTarget.id).SetBackColor("green"); break; case "mouse": // マウスが置かれたとき、背景色を水色にします。 FindIMControl(evt.currentTarget.id).SetBackColor("aliceblue"); break; } } // IE10 else if(navigator.msPointerEnabled) { switch (evt.pointerType) { case evt.MSPOINTER_TYPE_TOUCH: // 指が置かれたとき、背景色を黄色にします。 FindIMControl("GcDateTime1").SetBackColor("yellow"); break; case evt.MSPOINTER_TYPE_PEN: // ペンが置かれたとき、背景色を緑にします。 FindIMControl("GcDateTime1").SetBackColor("green"); break; case evt.MSPOINTER_TYPE_MOUSE: // マウスが置かれたとき、背景色を青にします。 FindIMControl("GcDateTime1").SetBackColor("blue"); break; } } }
<!DOCTYPE html> <html> <head> <style type="text/css"> body { /* タッチの既定操作を無効にします */ /* IE10用 */ -ms-touch-action: none; /* IE11用 */ touch-action : none; } </style> <script type="text/javascript"> // ジェスチャオブジェクトの宣言です。 var myGesture; function onLoad() { // ジェスチャオブジェクトのインスタンスを生成します。 myGesture = new MSGesture(); // ジェスチャにターゲット要素を設定します。 myGesture.target = document.getElementById("GcTextBox1"); } function GcTextBox1_onmspointerdown(evt) { // ジェスチャ認識の際に処理するべきポインターを設定します。 myGesture.addPointer(evt.pointerId); } function GcTextBox1_onmegesturetap(evt) { // コントロールがタップされたときの処理を実装します。 FindIMControl("GcTextBox1").SetText("タップされました。"); } </script> <body onload="onLoad()"> <form id="form1" runat="server"> <im_edit:GcTextBox ID="GcTextBox1" runat="server" HasLoadFromXml="True"> <clientevents> <StandardClientEvents onmspointerdown="GcTextBox1_onmspointerdown" onmsgesturetap="GcTextBox1_ongesturetap"> </StandardClientEvents> </clientevents> </im_edit:GcTextBox> </form> </body> </html>
ジェスチャにターゲット要素を設定する場合に限り、InputMan for ASP.NETのコントロールに対してdocument.getElementByIdメソッドを実行することが可能です。通常、コントロールのクライアント側オブジェクトを取得するにはFindIMControlメソッドを使用します。 |