我一直在搞清楚如何檢測它是否是一個HTML按鈕上的長按。 目前它只是逐像素地移動snap
Javascript如果檢測到持有運行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
好的,但按下按鈕時它只會觸發一次。如果您希望它在該印刷機的持續時間內持續啓動,則應該開始一個間隔。 –
這是修復它而不使用DOM屬性的非常合法的方法。老實說,我認爲這是不可能的,但採用間隔法。這很好。 – FreedomPride