Показать сообщение отдельно
  #3 (permalink)  
Старый 09.01.2009, 20:37
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Обработка событий с клавиатуры не самая простая задача в рамках JavaScript. В твоем коде много ошибок как в скрипте, так и в HTML, и я бы советовал для начала прочитать статьи на нашем сайте, и вообще статьи в интернете на эту тему. Решение вряд ли поможет тебе, но можешь попробовать разобраться:

<html>
<head>
<script type="text/javascript">
function move(e) {
    // Кросс-браузерное получение объекта событие:
    e = e || window.event;
    
    // Получаем keyCode:
    var keyCode = e.keyCode;

    // Берем элемент:
    var el= document.getElementById("PerSonag");

    // Определяем нажатие клавиш "влево", "вверх"
    // "вправо" и "вниз", коды клавиш 37, 38, 39, 40:
    if (keyCode == 37) {
        el.style.left = parseInt(el.style.left || 0) - 2;
    } else if (keyCode == 38) {
        el.style.top = parseInt(el.style.top || 0) - 2;
    } else if (keyCode == 39) {
        el.style.left = parseInt(el.style.left || 0) + 2;
    } else if (keyCode == 40) {
        el.style.top = parseInt(el.style.top || 0) + 2;
    } else {
        // Если нажаты другие клавиши: выходим
        return;
    }

    // Отменяем действие по умолчанию:
    e.preventDefault(); // Gecko, ...
    e.returnValue = false; // IE
}

// Устанавливаем обработчик на весь документ:
document.onkeydown = move;
</script>
</head>
<body>
<div style="position: absolute; left: 0; top: 0;" id="PerSonag">
<img src="pips6.gif">
</div>
</body>
</html>
Ответить с цитированием