Изменение размера и перемещение элементов
Добрый день.
Суть проблемы заключается в том, что мне необходимо реализовать перемещение и изменение размеров объектов(блоков 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 в глобальную переменную и потом как-то с этим работать, но проблема либо остаётся, либо координаты считаются в разных браузерах по разному. |
.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]; //дальнейший код } |
Спасибо за помощь. Заработало.
|
Часовой пояс GMT +3, время: 09:27. |