23. januar 2006 - 17:39
Der er
4 kommentarer og 1 løsning
Den plusser ikke ordenligt.
Hejsa. Nu sidder jeg og bikser med noget piletastværk, men matematik stykket bliver helt forkert. Min div ser således ud: <div id="actor" style="left:1px;top:1px;position:absolute;"> test </div> Jeg kører funktionen når man trykker W på tasteturet, dvs. up(); og functionen up ser således ud: function up() { var myLeftNow = document.getElementById('actor').style.left; var myTopNow = document.getElementById('actor').style.top; var regexp = /\px/g nyTop = myTopNow.replace(regexp, ""); var regexp = /\px/g nyLeft = myLeftNow.replace(regexp, ""); var leftCount = nyLeft + 1; var topCount = nyTop + 1; document.getElementById('actor').style.left = ""+leftCount+"px"; document.getElementById('actor').style.top = ""+topCount+"px"; document.getElementById('body').focus(); } Problemet er at den ikke plusser, den lægger et 1 oveni. fx første gang: 1 11 111 1111 11111 Den skal jo: 1+1 2+1 3+1 4+1 osv.. Hvad gør jeg dog forkert?
Annonceindlæg fra Barco
Er jeres mødelokaler sikre nok?
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
23. januar 2006 - 18:09
#1
Prøv med: function up() { var myLeftNow = document.getElementById('actor').style.left; var myTopNow = document.getElementById('actor').style.top; var regexp = /\px/g nyTop = myTopNow.replace(regexp, ""); var regexp = /\px/g nyLeft = myLeftNow.replace(regexp, ""); var leftCount = parseInt(nyLeft) + 1; var topCount = parseInt(nyTop) + 1; document.getElementById('actor').style.left = ""+leftCount+"px"; document.getElementById('actor').style.top = ""+topCount+"px"; document.getElementById('body').focus(); }
23. januar 2006 - 18:43
#4
Tjah, jeg ville jo nok: function up(){ var elm = document.getElementById('actor'); var leftCount = elm.offsetLeft++; var topCount = elm.offsetTop++; elm.style.left = leftCount+"px"; elm.style.top = topCount+"px"; document.getElementById('body').focus(); }