Javascript.RU

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

Изменение размера и перемещение элементов
Добрый день.
Суть проблемы заключается в том, что мне необходимо реализовать перемещение и изменение размеров объектов(блоков div).
<div id="header" class="b_res">
  <div class="top_g" id="headertop"></div>
   <div class="left_g" id="headerleft"></div>
   <div class="right_g" id="headerright"></div>
   <div style="clear: both;"></div>
   <div class="bottom_g" id="headerbottom"></div>
</div>

Это один блок, на странице их значительно больше. Соответственно на "header" накладываю события для перемещения, а для "headertop", "headerleft"... изменение размеров(это рамки, расположенные по краям родительского div`а "header". Возможно, отвратительное решение, но другого не нашёл). С перемещением разберусь сам, если поможете с изменением размеров.

document.getElementById('headertop').onmousedown = function(event) { saveCoord(this.parentNode,this); }
document.getElementById('headerleft').onmousedown = function(event) { saveCoord(this.parentNode,this); }
document.getElementById('headerright').onmousedown = function(event) { saveCoord(this.parentNode,this); }
document.getElementById('headerbottom').onmousedown = function(event) { saveCoord(this.parentNode,this); }


function getCoord(o_event) {
    if (o_event) {
      x = o_event.pageX;
      y = o_event.pageY;
    }
    else {
      x = window.event.clientX;
      y = window.event.clientY;
      if (ie) {
        y -= 2;
        x -= 2;
      }
    }
    return new Array(x, y);
  }



function saveCoord(pElem,elem){
var coord = getCoord(event);
w_block = block.clientWidth; 
h_block = block.clientHeight; 
d_w = w_block - coord[0]; 
d_h = h_block - coord[1];
//дальнейший код
}


Так вот в Firefox
var coord = getXY(event);
ничего не возвращает. alert(event) выводит undefined. В остальных браузерах всё отлично работает.
Пытался использовать http://javascript.ru/tutorial/events...entx-y-pagex-y также ничего не происходит.
Пытался выносить event в глобальную переменную и потом как-то с этим работать, но проблема либо остаётся, либо координаты считаются в разных браузерах по разному.
Ответить с цитированием
  #2 (permalink)  
Старый 12.08.2014, 19:00
Аватар для Aetae
Любитель
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 5,377

.onmousedown = function(event) { saveCoord(this.parentNode,this,*!*event*/!*); }

function saveCoord(pElem,elem,*!*event*/!*){
var coord = getCoord(event);
w_block = block.clientWidth;
h_block = block.clientHeight;
d_w = w_block - coord[0];
d_h = h_block - coord[1];
//дальнейший код
}
Или, что логичнее:
.onmousedown = *!*saveCoord*/!*;

function saveCoord(event){
*!*var pElem = this.parentNode, elem = this;*/!*
var coord = getCoord(event);
w_block = block.clientWidth;
h_block = block.clientHeight;
d_w = w_block - coord[0];
d_h = h_block - coord[1];
//дальнейший код
}
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 12.08.2014, 19:38
Интересующийся
Отправить личное сообщение для Nupster Посмотреть профиль Найти все сообщения от Nupster
 
Регистрация: 12.08.2014
Сообщений: 20

Спасибо за помощь. Заработало.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запретить изменение количество элементов в списке Antistas jQuery 0 05.12.2012 13:05
Изменение размера окна FoxTrix Общие вопросы Javascript 8 01.08.2012 04:26
Изменение множества элементов Input по определённом призна Лавсановые Волокна Элементы интерфейса 1 24.12.2010 10:37
Как отследить изменение размера браузера? br102 ExtJS 9 22.11.2010 16:10
Изменение размера блока реклама в зависимости от разрешения экрана. toxiz77 Общие вопросы Javascript 3 11.02.2009 14:12