gpt4 book ai didi

javascript - 为什么 (MouseUp mouseDown) 在移动浏览器上不起作用?

转载 作者:行者123 更新时间:2023-12-03 05:33:19 26 4
gpt4 key购买 nike

我的代码采用鼠标位置。手机浏览器支持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>

这是 Html 和 Css 代码,请查看并帮助我进行一些更改,如果您发现任何有帮助的话。

最佳答案

因为触摸事件不是鼠标事件。如果添加鼠标,就可以获得鼠标事件。

对于触摸事件,需要使用

pointerup
pointerdown

事件/事件监听器。了解更多关于 pointeruppointerdown .

用法:为指针添加addEventListener

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

关于javascript - 为什么 (MouseUp mouseDown) 在移动浏览器上不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40838963/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com