Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.11.2014, 20:39
Интересующийся
Отправить личное сообщение для SpiriKoN Посмотреть профиль Найти все сообщения от SpiriKoN
 
Регистрация: 23.10.2014
Сообщений: 20

onkeydown Event
Хочу чтобы блок двигался
#showKey
		{
		left: 50px;
			top: 50px;
			height: 40px;
			width: 50px;
			background-color: red;
			position: relative;
			display: block;
		}


<div id="blocks" onkeypress="left(e)"></div>

function(e) {
  e = e || event;
function(e) {
var block =  document.getElementById("blocks")
  switch(e.keyCode) {
  case 37: // влево
    block.style.left += 20+'px' ;
    return false;
  case 38: // вверх
    block.style.top -= 20+'px' ;
    return false;
  case 39: // вправо
    block.style.left -= 20+'px' ;
    return false;
  case 40: // вниз
    block.style.top += 20+'px' ;
    return false;
  }
};
}

но у меня не выходит что не так?
Как правильно написать?
Ответить с цитированием
  #2 (permalink)  
Старый 20.11.2014, 20:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

SpiriKoN,
клик на документ -- создать переменные направлений и к ним прибавлять дельту
block.style.left -= 20
var left = 0;
...
case 39: left -= 20;
block.style.left = left+'px' ;
Ответить с цитированием
  #3 (permalink)  
Старый 20.11.2014, 20:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

SpiriKoN,
Canvas. Как сделать или вообще нельзя? Вращение рандомизированно изменяемого объекта.
Ответить с цитированием
  #4 (permalink)  
Старый 21.11.2014, 19:07
Интересующийся
Отправить личное сообщение для SpiriKoN Посмотреть профиль Найти все сообщения от SpiriKoN
 
Регистрация: 23.10.2014
Сообщений: 20

document.body.onkeydown = function (e) {
var left = 0;
var top = 0;
var block = document.getElementById("blocks");
e = e || event;

switch(e.keyCode) {
case 37: // влево
left -= 20;
block.style.left = left+'px' ;
return false;
case 38: // вверх
top -= 20;
block.style.top = top+'px' ;
return false;
case 39: // вправо
left += 20;
block.style.left = left+'px' ;
return false;
case 40: // вниз
top =top+ 20;
block.style.top = top+'px' ;
return false;
}
}
написал но все равно не то. Как правильно?
Ответить с цитированием
  #5 (permalink)  
Старый 21.11.2014, 19:11
Интересующийся
Отправить личное сообщение для SpiriKoN Посмотреть профиль Найти все сообщения от SpiriKoN
 
Регистрация: 23.10.2014
Сообщений: 20

var left = 0;
var block = document.getElementById("blocks");
document.body.onkeydown = function (e) {
e = e || event;
switch(e.keyCode) {
case 37: // влево
left -= 20;
block.style.left = left+'px' ;
return false;
case 39: // вправо
left += 20;
block.style.left = left+'px' ;
return false;
но так то что мне нужно
Спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 22.11.2014, 11:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от SpiriKoN
var left = 0;
var top = 0;
это должно быть вне функции

и форматируйте свой код - зачем глаза ломать
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как создать event, эмулирующий enter Artanis Events/DOM/Window 7 16.07.2019 06:40
Событие event в FireFox yambbkru Firefox/Mozilla 2 12.02.2013 18:19
event + setTimeout fsingle Events/DOM/Window 2 02.05.2012 09:07
"Залипание" onkeydown() MazenRat Events/DOM/Window 4 15.07.2010 06:59
onkeydown постоянное нажатие клавиши Jekel Javascript под браузер 4 16.12.2009 18:23