Проблема с движением
<!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, время: 10:06. |