Проблема с движением
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Движениe</title> </head> <body> <script language="JavaScript" type="text/javascript"> var x = 150; var y = 180; var step = 5; document.body.onkeypress = function move(){ if(event.keyCode==39){x += step;} Kamatoznik.top = y; Kamatoznik.left = x; setTimeout("move()", 50);} </script> <div id="Kamatoznik" style="position:absolute"> <img src="front.png" name="front" alt="Kamatoznik"> </div> </body> </html> Подскажите пожалуйста где ошибка. Объект отказывается двигаться при нажатии стрелки в право. |
Цитата:
setTimeout("move", 50); или так setTimeout(function(){move();}, 50); Кстати, я использую функцию определения нажатия клавиши в кроссбраузерном варианте document.onkeyup=function(event){ var e=event||window.event; var k=e.keyCode||e.which; alert(k); // тут выдаст код клавиши. Работает везде (в ИЕ не проверял) } |
Цитата:
а вообще алгоритм сам по себе бредовый |
inozem,
Поиск элементов в DOM События клавиатуры JS-Анимация или вариант ниже ... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Движениe</title> </head> <body> <script type="text/javascript"> var x=150,y=180,step=5; document.body.onkeydown = document.body.onkeypress = function (a) { a = a ? a : window.event; 39 == (a.charCode || a.keyCode) && (x += step); a = document.getElementById("Kamatoznik"); a.style.top = y + "px"; a.style.left = x + "px" }; </script> <div id="Kamatoznik" style="position:absolute"> <img src="http://javascript.ru/forum/images/smilies/dance3.gif" name="front" alt="Kamatoznik"> </div> </body> </html> |
inozem,
P.S. таймер здесь как ... короче ненужен |
Ребят огромное вам спасибо, очень помогли)
Я просто на самообучении, какие книги нашел, из тех и черпал... |
Часовой пояс GMT +3, время: 12:05. |