私は、HTMLボタンでlongclickであるかどうかを検出する方法を考え出しています。 現在のところ、ピクセル単位で移動していますsnap
forループが検出された場合にループが実行される
ボタンでhold
を検出してforloopで実行する方法はありますか? 私はonlongclick
を試しましたが、運がありません。
function load() {
var context = document.getElementById('main').getContext("2d");
var left = document.getElementById('left');
var down = document.getElementById('down');
var right = document.getElementById('right');
var imgLoaded = false;
var posX = 250;
var posY = 0;
var snap = 10;
var img = new Image();
img.onload = function() {
imgLoaded = true;
context.drawImage(img, posX, posY);
};
img.src = "start.png";
// left button click
left.onclick = function() {
if (!imgLoaded) return;
posX = posX - snap;
context.clearRect(0, 0, context.canvas.width, context.canvas.height);
context.drawImage(img, posX, posY);
};
// down button click
down.onclick = function() {
if (!imgLoaded) return;
posY = posY + snap;
context.clearRect(0, 0, context.canvas.width, context.canvas.height);
context.drawImage(img, posX, posY);
};
// right button click
right.onclick = function() {
if (!imgLoaded) return;
posX = posX + snap;
context.clearRect(0, 0, context.canvas.width, context.canvas.height);
context.drawImage(img, posX, posY);
};
}
HTMLボタン: -
<aside class="socialNetworkNavBar">
<div id="left" style="margin-right: 50px;" class="socialNetworkNav">
<!-- Add a Anchor tag with nested img tag here -->
<input type="image" src="images/left.png">
</div>
<div id="down" style="margin-right: 50px;" class="socialNetworkNav">
<!-- Add a Anchor tag with nested img tag here -->
<input type="image" src="images/down.png"> </div>
<div id="right" style="margin-right: 50px;" class="socialNetworkNav">
<!-- Add a Anchor tag with nested img tag here -->
<input type="image" src="images/UXwr4.png">
</div>
</aside>
これは興味深いので、onmousedownに基づいてボタンにイベントをバインドできますか? – FreedomPride
いいえ、ボタンを押すと1回だけ発射されます。そのプレスの持続時間の間に連続的に発射したい場合は、間隔を開始する必要があります。 –
これは、DOMプロパティを使用せずに修正するための非常に正当な方法です。正直言って私はそれは不可能だと思ったが、インターバルメソッドを使った。それは良いです。 – FreedomPride