Изменение размера и перемещение элементов
Добрый день.
Суть проблемы заключается в том, что мне необходимо реализовать перемещение и изменение размеров объектов(блоков 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, время: 13:23. |