12

編集:「これはAngular UIモーダルでは実行できません」は、実際にそうである場合、有効な答えです。

これは、タッチ イベントから取得した戻りデータです。有用なタッチ X/Y 座標が明らかに欠落しています ( https://developer.mozilla.org/en-US/docs/Web/API/TouchEvent/changedTouches )。これは絶望的に一般的な質問ですが、それにもかかわらず、何かアイデアはありますか? タッチ時に実行される関数に渡される「イベント」オブジェクト:

{
      "originalEvent": {
        "isTrusted": true
      },
      "type": "touchstart",
      "timeStamp": 1450388006795,
      "jQuery203026962137850932777": true,
      "which": 0,
      "view": "$WINDOW",
      "target": {},
      "shiftKey": false,
      "metaKey": false,
      "eventPhase": 3,
      "currentTarget": {},
      "ctrlKey": false,
      "cancelable": true,
      "bubbles": true,
      "altKey": false,
      "delegateTarget": {},
      "handleObj": {
        "type": "touchstart",
        "origType": "touchstart",
        "data": null,
        "guid": 2026,
        "namespace": ""
      },
      "data": null
    }

現在、これはキャンバスの角度のある UI モーダルにありますが、マウス イベントは正常に機能します。ここに私の要素があります:

link: function(scope, element, attrs, model){
                //scope.canvasElem = element[0].children[0].children[0];
                scope.canvasElem = angular.element($('.touchScreen'))[0];
                scope.ctx = scope.canvasElem.getContext('2d');

バインド方法の例を次に示します。

element.bind('touchstart', scope.touchStart);

編集してください。比較用に mousedown イベント オブジェクトを次に示します。

{
  "originalEvent": {
    "isTrusted": true
  },
  "type": "mousedown",
  "timeStamp": 1450389131400,
  "jQuery20309114612976554781": true,
  "toElement": {},
  "screenY": 436,
  "screenX": 726,
  "pageY": 375,
  "pageX": 726,
  "offsetY": 81,
  "offsetX": 41,
  "clientY": 375,
  "clientX": 726,
  "buttons": 1,
  "button": 0,
  "which": 1,
  "view": "$WINDOW",
  "target": {},
  "shiftKey": false,
  "relatedTarget": null,
  "metaKey": false,
  "eventPhase": 3,
  "currentTarget": {},
  "ctrlKey": false,
  "cancelable": true,
  "bubbles": true,
  "altKey": false,
  "delegateTarget": {},
  "handleObj": {
    "type": "mousedown",
    "origType": "mousedown",
    "data": null,
    "guid": 2025,
    "namespace": ""
  },
  "data": null
}
4

3 に答える 3

0

x 座標と y 座標を取得するには、以下のコードを使用してみてください

x1 = event.touches[0].pageX;
y1 = event.touches[0].pageY;
于 2015-12-21T12:39:31.027 に答える