8

私は、上司のために小さなWebインターフェイスをまとめようとしている低UCプログラマーです。タッチ入力を使用してキャンバス上の正方形を選択できることを除いて、これまでのところすべてが機能しています。

これは、Windows8およびIE10を実行しているSamsungSlate7タブレット上にあります

私はここでコードをほとんど必要不可欠なものにまで絞り込みました:

var cxt;
var c;

window.onload = function () {

c = document.getElementById('displayCanvas');

cxt = c.getContext('2d');


/*
c.addEventListener("MSPointerUp", mouseUp, false);
c.addEventListener("MSPointerMove", mouseMove, false);
c.addEventListener("MSPointerDown", mouseDown, false);
*/
c.addEventListener("touchend", mouseUp, false)
c.addEventListener("touchmove", mouseMove, false);
c.addEventListener("touchstart", mouseDown, false);

}


function mouseDown(downE) {
    window.console &&  console.log("down");
};


function mouseMove(moveE){
    window.console && console.log("move");
}


function mouseUp() {
    window.console && console.log("end");
}

MSPointerと「通常の」JavaScriptタッチイベントの両方を使用して、開始イベントと終了イベントの両方を取得しますが、「move」イベントは登録されません。

私を助けてくれてありがとう、それは私がここで見逃している本当に単純なものだと確信しています!

4

2 に答える 2

25

Windows 8のデスクトップIEでHTMLページを操作していると仮定します。デスクトップIEでは、ユーザーが画面上で指を動かしたときのデフォルトの動作はコンテンツをパンすることであるため、MSPointerMoveはそのキャンバスで起動しません。次のスニペットを使用してキャンバスのスタイルを設定すると、MSPointerMoveイベントが検出されます。

style = "-ms-touch-action:none"

これは、多くのブラウザでタッチを機能させる方法に関する優れた記事です。http://blogs.msdn.com/b/ie/archive/2011/10/19/handling-multi-touch-and-mouse-input-in-all-browsers.aspx

于 2012-08-22T15:35:23.353 に答える
0

Samsung Slate 7タブレットには、関連する可能性のある古いバージョンのドライバーにバグがあります。詳細が記載された[internet-explorer-10]というタグの付いた別の回答を見ました。ドライバーを更新しましたか?

于 2012-10-20T00:36:20.923 に答える