Ich habe herausgefunden, wie man erkennt, wenn es ein Longclick auf eine HTML-Schaltfläche ist. Derzeit ist es nur Pixel bewegt Pixel snap
Javascript, wenn zu erkennen, halten in Schleife zu laufen
Gibt es eine Möglichkeit hold
auf eine Schaltfläche zu erfassen und in einem forloop laufen? Ich habe versucht onlongclick
und es gibt kein Glück darin.
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);
};
}
Die HTML-Buttons: -
<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>
Das ist interessant, also könnte ich ein Ereignis an einen Knopf binden, basierend auf einem Mausklick, oder? – FreedomPride
Nun ja, aber es wird nur einmal ausgelöst, wenn die Taste gedrückt wird. Wenn Sie möchten, dass es für die Dauer dieses Drucks kontinuierlich ausgelöst wird, sollten Sie ein Intervall starten. –
Dies ist eine sehr legitime Möglichkeit, es zu beheben, ohne DOM-Eigenschaft zu verwenden. Ehrlich gesagt dachte ich, dass es unmöglich ist, aber mit einer Intervallmethode. Das ist gut. – FreedomPride