Javascript.RU

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

Не могу заставить!
Только начал работать с javaScript, и сразу обрел проблему!( Помогите, подскажите!)
Не могу заставить перемещаться несколько DIV, а один так на ура, перерыл весь интернет проблему так и не решил!
Вот мой косячный код!)
<div class="block" style=" cursor: move; position: absolute; background: #F2F2F2; width:350px; height: 50px; border-radius:10px; padding:10px;">Block1</div>
<div class="block" style=" cursor: move; position: absolute; left:380px; background: #F2F2F2; width:350px; height: 50px; border-radius:10px; padding:10px;">Block2</div>

<script type='text/javascript'>
  var ie = 0;
  var op = 0;
  var ff = 0;
  var browser = navigator.userAgent;
  if (browser.indexOf("Opera") != -1) op = 1;
  else {
    if (browser.indexOf("MSIE") != -1) ie = 1;
    else {
      if (browser.indexOf("Firefox") != -1) ff = 1;
    }
  }
  var block = document.querySelectorAll(".block");
  delta_x = 0;
  delta_y = 0;
  block.onmousedown = saveXY;
  for(var i = 0; i < block.length; i++){
    block[i].addEventListener("onmousedown", saveXY, false);
}
  document.onmouseup = clearXY;
  function saveXY(obj_event) {
    if (obj_event) {
      x = obj_event.pageX;
      y = obj_event.pageY;
    }
    else {
      x = window.event.clientX;
      y = window.event.clientY;
      if (ie) {
        y -= 2;
        x -= 2;
      }
    }
    x_block = block.offsetLeft;
    y_block = block.offsetTop;
    delta_x = x_block - x;
    delta_y = y_block - y;
    document.onmousemove = moveBlock;
    if (op || ff)
      document.addEventListener("onmousemove", moveBlock, false);
  }
  function clearXY() {
    document.onmousemove = null;
  }
  function moveBlock(obj_event) {
    if (obj_event) {
      x = obj_event.pageX;
      y = obj_event.pageY;
    }
    else {
      x = window.event.clientX;
      y = window.event.clientY;
      if (ie) {
        y -= 2;
        x -= 2;
      }
    }
    new_x = delta_x + x;
    new_y = delta_y + y;
    block.style.top = new_y + "px";
    block.style.left = new_x + "px";
  }
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 18.02.2014, 15:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Виктор хаб,
строка 16 даёшь массиву функцию!!!
строки 18 и 40 on в addEventListener
нет разделения что каждому блоку своё

Последний раз редактировалось рони, 18.02.2014 в 15:59.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемма с jquery fancybox, не могу понять в чем дело! bandesign jQuery 1 16.09.2013 16:35
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Не могу понять Замыкание. slip AJAX и COMET 7 19.01.2013 14:40
Скрипт калькулятора (не могу добавить еще одно значение) Jee_Day Я не знаю javascript 2 22.05.2009 13:19
Не могу получить высоту из css asci Общие вопросы Javascript 5 30.03.2009 13:31