Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 18.12.2013, 23:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

Zemsky, на всякий случай
http://learn.javascript.ru/keyboard-events
Ответить с цитированием
  #22 (permalink)  
Старый 18.12.2013, 23:35
Интересующийся
Отправить личное сообщение для Zemsky Посмотреть профиль Найти все сообщения от Zemsky
 
Регистрация: 13.12.2013
Сообщений: 15

рони,
Вот спасибо! Буду разбираться..
Ответить с цитированием
  #23 (permalink)  
Старый 19.12.2013, 00:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

Zemsky,
вариант управления стрелками ... кликнуть по квадрату вначале
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  div{height:100px;width:100px;background:#006400;position:relative}
  </style>
  <script>
window.onload = function () {
    var b = {
        39: ["left", 5],
        37: ["left", -5],
        40: ["top", 5],
        38: ["top", -5],
        left: 0,
        top: 0
    };
    document.body.onkeydown = function (a) {
        a = a || window.event;
        a = a.keyCode;
        var d = document.getElementById("show");
        if (a in b) {
            var c = b[a][0];
            b[c] += b[a][1];
            d.style[c] = b[c] + "px"
        }
    return false
}
};
</script>
</head>

<body>
<div id="show" ></div>
</body>
</html>

Последний раз редактировалось рони, 19.12.2013 в 00:05.
Ответить с цитированием
  #24 (permalink)  
Старый 19.12.2013, 00:53
Интересующийся
Отправить личное сообщение для Zemsky Посмотреть профиль Найти все сообщения от Zemsky
 
Регистрация: 13.12.2013
Сообщений: 15

рони,
Кладу в архив. Это ассоциативный массив? Вот со второй частью полная непонятка...
Ответить с цитированием
  #25 (permalink)  
Старый 19.12.2013, 01:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

Сообщение от Zemsky
Вот со второй частью
что есть вторая часть?
Ответить с цитированием
  #26 (permalink)  
Старый 19.12.2013, 01:16
Интересующийся
Отправить личное сообщение для Zemsky Посмотреть профиль Найти все сообщения от Zemsky
 
Регистрация: 13.12.2013
Сообщений: 15

Сообщение от рони Посмотреть сообщение
что есть вторая часть?
document.body.onkeydown = function (a) {.......

Я еще только начал осваивать. Поэтому и задачу несложную себе формулирую. И постепенно усложняю.
Ответить с цитированием
  #27 (permalink)  
Старый 19.12.2013, 18:28
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

рони,
Красиво, только зачем так сокращать, всё таки не в разработку отдаёте, а объясняете человеку А то получается полу обфусцированный код
Ответить с цитированием
  #28 (permalink)  
Старый 19.12.2013, 18:33
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Zemsky,
a = a || window.event;
Это для кроссбраузерности. В итоге в а будет событие. (event)

a = a.keyCode;
Перезаписали в а код нажатой клавиши, которую взяли из события

if (a in b) {
проверяем есть ли в объекте b ключ a

var c = b[a][0];
объявляем переменную c равную первому элементу массива в объекте b c ключём a

b[c] += b[a][1];
изменяем left или top в b в зависимости от клавиши

d.style[c] = b[c] + "px"
смещаем квадрат
Ответить с цитированием
  #29 (permalink)  
Старый 19.12.2013, 18:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,078

tsigel,
почему
Сообщение от tsigel
полу обфусцированный
там что-то ещё можно сократить? )))
научусь имена давать вразумительные - будет несокращённый вариант.
и спасибо что обьяснили мой код
Ответить с цитированием
  #30 (permalink)  
Старый 19.12.2013, 18:37
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

рони,
Ну как же! Ещё можно удалить переносы на новую строку и пробелы


Сообщение от рони
и спасибо что обьяснили мой код
Незачто


Последний раз редактировалось tsigel, 19.12.2013 в 18:50.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие div блока при первом визите на сайт Nushaba Общие вопросы Javascript 28 20.12.2013 21:24
Как при чтении или записи свойства объекта вызывать функцию danik.js Общие вопросы Javascript 3 16.09.2010 17:57
Как отлаживать события? Или как сделать трассировку вызовов функций? gennad Events/DOM/Window 1 18.08.2010 13:21
Вопрос тупой, как сделать обычное по со списком или combobox иначе ? dennnyk Элементы интерфейса 1 07.07.2010 06:59
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06