Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Переместить объект (https://javascript.ru/forum/dom-window/20573-peremestit-obekt.html)

FanRa3 10.08.2011 03:29

Переместить объект
 
Всем привет. Я пытаюсь переместить картинку с помощью вот этого кода:
var e = event || window.event;
var x = parseInt(e.clientX);
var y = parseInt(e.clientY);
Image1.style.left = x;
Image1.style.top = y;
Label5.innerHTML = parseInt(x)+'|'+parseInt(y);

Но картинка не двигается. Координаты записывается правильно. В чём может быть проблема? Заранее благодарен :)

devote 10.08.2011 03:59

var e = event || window.event;
var x = parseInt(e.clientX);
var y = parseInt(e.clientY);
Image1.style.left = x + "px";
Image1.style.top = y + "px";
Label5.innerHTML = parseInt(x)+'|'+parseInt(y);

ksa 10.08.2011 10:01

Цитата:

Сообщение от FanRa3
В чём может быть проблема?

Одну уже указали. И немаловажный факт - какой position у той картинки?

FanRa3 10.08.2011 12:44

переписал, вроде всё работает, но перемещается криво. вот код:

Это в Page1Load
var e = event || window.event;
        var wd = parseInt(document.body.clientWidth);
        var hg = parseInt(document.body.clientHeight);
        GroupBox1 = document.getElementById('GroupBox1');
        GroupBox2 = document.getElementById('GroupBox2');
        Image1.style.marginLeft=10;
        Image1.style.marginTop=10;
        GroupBox1.style.marginLeft=10;
        GroupBox1.style.marginTop=10;
        GroupBox2.style.marginLeft=10;
        GroupBox2.style.marginTop=10;


Это в Image1MouseDown
var e = event || window.event;
        lx = parseInt(e.clientX)-parseInt(Image1.style.marginLeft);
        ly = parseInt(e.clientY)-parseInt(Image1.style.marginTop);
        lx1 = parseInt(e.clientX)-parseInt(GroupBox1.style.marginLeft);
        ly1 = parseInt(e.clientY)-parseInt(GroupBox1.style.marginTop);
        lx2 = parseInt(e.clientX)-parseInt(GroupBox2.style.marginLeft);
        ly2 = parseInt(e.clientY)-parseInt(GroupBox2.style.marginTop);


А это в Image1MouseMove
if (md)
        {
        var e = event || window.event;
        var x = parseInt(e.clientX);
        var y = parseInt(e.clientY);
        var dx = x-lx;
        var dy = y-ly;
        var dx1 = x-lx1;
        var dy1 = y-ly1;
        var dx2 = x-lx2;
        var dy2 = y-ly2;
        Image1.style.marginLeft = dx;
        Image1.style.marginTop = dy;
        GroupBox1.style.marginLeft=dx1;
        GroupBox1.style.marginTop=dy1;
        GroupBox2.style.marginLeft=dx2;
        GroupBox2.style.marginTop=dy2;
        Label5.innerHTML = Image1.style.marginLeft+'|'+lx+'|'+dx;
        }

Картинка с GroupBox'ами вроде нормально двигается, но когда я пытаюсь опустить её вниз, она немного опускается и дальше не идёт. Что можно с этим сделать?

devote 10.08.2011 12:46

ко всем значениям приписывай префикс "px" прямное число в css указывать нельзя кроме нуля.

FanRa3 10.08.2011 12:55

Цитата:

Сообщение от devote (Сообщение 119384)
ко всем значениям приписывай префикс "px" прямное число в css указывать нельзя кроме нуля.

сейчас попробую, но без этого ведь тоже перемещается

UPD:
if (md)
        {
        var e = event || window.event;
        var x = parseInt(e.clientX);
        var y = parseInt(e.clientY);
        var dx = x-lx;
        var dy = y-ly;
        var dx1 = x-lx1;
        var dy1 = y-ly1;
        var dx2 = x-lx2;
        var dy2 = y-ly2;
        Image1.style.marginLeft = dx+"px";
        Image1.style.marginTop = dy+"px";
        GroupBox1.style.marginLeft=dx1+"px";
        GroupBox1.style.marginTop=dy1+"px";
        GroupBox2.style.marginLeft=dx2+"px";
        GroupBox2.style.marginTop=dy2+"px";
        Label5.innerHTML = Image1.style.marginLeft+'|'+lx+'|'+dx;
        }

так же тормозит

devote 10.08.2011 13:32

дык может компутер слобават? Имагесы гонять по экрану это не не вектор с 3dfx

FanRa3 10.08.2011 14:00

эх.. убрал я эту передвигалку и у меня скосило весь сайт, попробовал загрузить бекап - не помогло. вот щас сижу и думаю, что это такое


Часовой пояс GMT +3, время: 07:20.