Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.02.2014, 13:14
Интересующийся
Отправить личное сообщение для vovang Посмотреть профиль Найти все сообщения от vovang
 
Регистрация: 30.01.2013
Сообщений: 21

перемещение картинки внутри элемента
Задача:картинка перемещается клавишами внутри элемента и не должна выходить за границы элемента.Есть функция на проверку пересечения границ элемента.Проблема в том,что я не могу привязать её к функции движения.Вот код:
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type="text/css">
#pole {
padding: 0;
margin: 0;
width: 300px;
height: 200px;
border: 1px solid black;
position:absolute;
background-image: url('fieldbg.jpg');
}
 </style>
<script type="text/javascript">
 //определение выхода за границы элемента.   
function borderColl() {
if (left < 0 || left > 272) {
dx = -dx;
}
if (top <= 0 || top >= 172) {
dy = -dy;
}
}


function move(e) {
    // Кросс-браузерное получение объекта событие:
    e = e || window.event;
     
    // Получаем keyCode:
    var keyCode = e.keyCode;
 
    // Берем элемент:
    var el= document.getElementById("Player");
 
    // Определяем нажатие клавиш "влево", "вверх"
    // "вправо" и "вниз", коды клавиш 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 id="pole">
<div style="position: absolute; left: 0; top: 0;" id="Player">
<img src="1.jpg">
</div>
</div>
</body>
</html>

Может кто подскажет,как привязать проверку к скрипту движения.

Последний раз редактировалось vovang, 16.02.2014 в 13:57.
Ответить с цитированием
  #2 (permalink)  
Старый 16.02.2014, 13:29
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от vovang
    // Отменяем действие по умолчанию:
    e.preventDefault(); // Gecko, ...
    e.returnValue = false; // IE
e.preventDefault() нету в IE8, что вызовет ошибку, прервет скрипт, и код ниже не отработает.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 16.02.2014, 14:02
Интересующийся
Отправить личное сообщение для vovang Посмотреть профиль Найти все сообщения от vovang
 
Регистрация: 30.01.2013
Сообщений: 21

А как насчет подключения функции borderColl() к move()
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как извлечь адрес картинки, указанный внутри функции onclick? sidarvik Events/DOM/Window 19 04.02.2013 01:05
Обработка события элемента внутри создавшего его объекта pauluss Общие вопросы Javascript 10 10.09.2010 17:01
скрол мышкой картинки внутри слоя snk Элементы интерфейса 7 07.09.2010 18:22
Перемещение div внутри другого Danila74 jQuery 1 24.09.2009 17:31
У элемента img внутри form пропадает событие после onsubmit формы Eugene Events/DOM/Window 2 18.06.2009 19:21