欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

為什么(MouseUp mouseDown)在手機瀏覽器上不起作用?

傅智翔2年前8瀏覽0評論

我的代碼占用了一個鼠標位置。 手機瀏覽器支持html5。但不能使用MouseUp mouseDown 我該怎么修?

<!DOCTYPE HTML>
<html>

<head>

  <body style="background-color:3F6E6F;">
    <style>
      body {
        margin: 0px;
        padding: 0px;
      }
    </style>
</head>

<body>

  <canvas id="myCanvas" width="1200" height="1000" onmousedown="mouseDown()" onmouseup="mouseUp()"></canvas>
  <p id="demo"></p>


  <script>
    var depx = 0;
    var depy = 0;
    var flag = 0;

    function writeMessage(canvas, message) {
      var context = canvas.getContext('2d');
      context.clearRect(0, 0, canvas.width, canvas.height);
      context.font = '18pt Calibri';
      context.fillStyle = 'black';
      context.fillText(message, 10, 25);
    }


    function getMousePos(canvas, evt) {
      var rect = canvas.getBoundingClientRect();
      return {
        x: evt.clientX - rect.left,
        y: evt.clientY - rect.top
      };
    }


    var canvas = document.getElementById('myCanvas');
    var context = canvas.getContext('2d');


    function mouseDown() {
      canvas.addEventListener("mousemove", myFunction);
    }




    function myFunction(evt) {
      var mousePos = getMousePos(canvas, evt);
      if (flag == 0) {
        depx = mousePos.x;
        depy = mousePos.y;
      }
      flag = 1;


      var message = 'Mouse position: ' + mousePos.x + ',' + mousePos.y + ' abs position ' + (mousePos.x - depx) + ',' + (mousePos.y - depy);
      writeMessage(canvas, message);
    }

    function mouseUp() {
      flag = 0;
      canvas.removeEventListener("mousemove", myFunction);
    }
  </script>

</body>

</html>

因為觸摸事件不是鼠標事件。如果你添加一個鼠標,你可以得到鼠標事件。

對于觸摸事件,您需要使用

pointerup
pointerdown

事件/事件偵聽器。閱讀更多關于pointerup和pointerdown的信息。

用法:也為指針添加addEventListener。

document.getElementById('elem1').addEventListener('pointerdown', methodForPointerDown, false);
document.getElementById('elem1').addEventListener('pointerup', methodForPointerUp, false);

對于移動瀏覽器來說,MouseUp和mouseDown有另外一種選擇,因為它們不使用鼠標。

對于手機瀏覽器,您可以使用touchstart和touchend來代替它們。

這里有個鏈接可以參考

這是另一組用于移動設備的事件監聽器。

指針事件

下面是一個如何用指針事件監聽器檢測指針設備類型的例子

檢測用戶輸入的類型

window.addEventListener("pointerdown", detectInputType, false);

function detectInputType(event) {
    switch(event.pointerType) {
        case "mouse":
            /* mouse input detected */
            break;
        case "pen":
            /* pen/stylus input detected */
            break;
        case "touch":
            /* touch input detected */
            break;
        default:
            /* pointerType is empty (could not be detected)
            or UA-specific custom type */
    }
}

希望這對你有幫助..