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

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

inno setup - TLabel or TNewStaticText - change .Font.Style on Focus like Cursor changes with .Cursor -