все-таки я допер как написать скрипт чтобы можно было перетаскивать объекты (я перетаскивал <div>) и в опере и в мозилле, а IE то вроде понимает onDrag (или что-то типа того), работает прекрасно только вот блин одно плохо одновременно с перетаскиванием происходит выделение текста если таковой попадается под курсор. хотя я не понимаю почему ведь текст то в слое который под перетаскиваемым, это в моей опере, а мозилла нормально, текст не выделяется. Еще один минус если объект маленький а скорость перетаскивания высока то объект просто вываливается из фокуса
чем меньше объект тем медленнее его надо перетаскивать
может кому пригодится
<div id="some_object" style="position:absolute;" onmousedown="start_dragging(event)" onmousemove="dragging(event)" onmouseup="stop_dragging()"></div>
// на событие mouseDown
function start_dragging(event){
drag=1; // говорит что перетаскивание началось
x2=event.clientX; //запоминаем начальное X курсора
y2=event.clientY; //запоминаем начальное Y курсора
// далее сбрасываем marginы объекта если таковые есть
// иначе объект сместится в сторону если его left или top были заданы
// в процентах и были заданы marginы скажем например для его
//оцентровки
var position_x =center_window.offsetLeft;
var position_y =center_window.offsetTop;
document.getElementById('some_object').style.marginLeft="0px";
document.getElementById('some_object').style.marginRight="0px";
document.getElementById('some_object').style.left=position_x;
document.getElementById('some_object').style.marginTop="0px";
document.getElementById('some_object').style.marginBottom="0px";
document.getElementById('some_object').style.top=position_y;
}
function dragging(event){
// проверяем началось ли перетаскивание
if (drag==1){
x1=event.clientX; // определяем текущую позицию курсора по Х
y1=event.clientY; // определяем текущую позицию курсора по Y
shift_x=x1-x2 // вычисляем разницу (сдвиг) между текущими и
shift_y=y1-y2 // предыд. позициями курсора
// сдвигаем объект
document.getElementById('some_object').style.left=some_object.offsetLeft+shift_x
document.getElementById('some_object').style.top=some_object.offsetTop+shift_y
x2=x1; y2=y1; // запоминаем предыдущие координаты курсора
}
}
// на событие mouseUp то есть когда закончили перетаскивать и
// отпустили кнопку
function stop_dragging(){drag=0;}
ну вот хотел сделать чтобы на событие mouseDown курсор менялся на "move" но не работает меняется только при следующем событие mouseover
код небольшой для чего-то невеликого сгодится
может у кого есть скрипт покрасивее? я только учусь