events - Move div with onkeydown javascript -
i trying make div move arrow keys (37 & 39) , press spacebar have div appear onkeydown , disappear onkeyup. thing is: want div continue move when press spacebar. right now, div stops moving when so.
i thought putting keys in array work, did not, have suggestion me? :)
the code has in javascript.
var keyspressed = new array(); window.onkeydown = keydownhandler; window.onkeyup = keyuphandler; function keydownhandler(e){ var s=""; keyspressed[e.which] = true; key = window.event.keycode; s+=key+" activee:" + keyspressed[e.which]; updatekeys(); document.getelementbyid("movediv").innerhtml = s; } function keyuphandler(e){ s=""; keyspressed[e.which] = false; key = window.event.keycode; s+=key+" activee:" + keyspressed[e.which]; updatekeys(); document.getelementbyid("movediv").innerhtml = s; } var left=0; var top = 0; function updatekeys(){ if(keyspressed[39]){ document.getelementbyid("movediv").style.left = left + 10+"px"; left += 10; } if(keyspressed[37]){ document.getelementbyid("movediv").style.left = left -10+"px"; left-=10; } if(keyspressed[32]){ document.getelementbyid("show").style.display = "block"; } if(!keyspressed[32]){ document.getelementbyid("show").style.display = "none"; } }
html:
<div style="position:absolute;" id="movediv"></div> <div style="position:absolute; left:500px; top:500px; display: none;" id="show">pressed spacebar</div>
is trying achieve? fiddle
function updatekeys() { if (keyspressed[0]) left -= speed; if (keyspressed[2]) left += speed; if (keyspressed[1]) top -= speed; if (keyspressed[3]) top += speed; document.getelementbyid("movediv").style.left = left + "px"; document.getelementbyid("movediv").style.top = top + "px"; if (spacepressed) document.getelementbyid("show").style.display = "block"; else document.getelementbyid("show").style.display = "none"; } setinterval(updatekeys, 1);
read setinterval
if not familiar it
it sets function run every said milliseconds, in case every 1 millisecond function updatekeys
executed.
Comments
Post a Comment