G
garrymax
Есть функция move:
Используется для перетаскивания нескольких объектов (есть просто DIV's, а есть с картинками). В Ослике все нормально работает, но когда в Опере или Мозиле пытаешься перетащить DIV с картинкой вверх (только вертикально - горизонтально все нормально), то в первый момент начинается глюк (не путать с немецким счастьем) - Опера явно понимает перетаскивание, как DragInDrop на строку адреса, Мозила похоже тоже самое делает, но более обширно (не только строка адреса). Дополнительно теряется событие OnMouseUp для этого объекта, если резко сместить мышь, но это можно решить OnMouseOut - не актуально.
Переписывать на обширные варианты, которые так не воспринимают, уже поздно - это только актуальный кусок функции (есть еще один кусок, но при перемещении он всегда false), а объектов много и они разные, но проблема только с теми, у которых есть картинка в момент события OnMouseDown (Эта функция только помешает объект в переменную ObgDivWinForMove и вычисляет смещение позиции объекта от позиции курсора). Нужно только отключить в Опере и Мозиле DragInDrop, но эти броузеры не знают события OnDrag и подобные им. В сети для скриптов ничего не нашел.
Вопрос: Как скриптом отключить в Мозиле и Орере события DragInDrop (можно и для картинки отдельно) или как минимально изменить код функции, что бы вертикальное перетаскивание картинок не воспринималось этим броузерами, как DragInDrop. Предложения по background-image не пройдут - на картинках MAP's замысловатого узора. Возможно проблема только в свойствах картинки, но как эти свойства отрубить.
Код:
function move(e){
var x, y;
if (typeof e != "undefined") { y = e.pageY; x = e.pageX; } else { x = window.event.clientX; y = window.event.clientY; }
if(ObgDivWinForMove){
ObgDivWinForMove.style.top = y - MouseOffsetY
ObgDivWinForMove.style.left= x - MouseOffsetX
}
MouseX=x; MouseY=y;
return false;
}
function init(){
document.onmousemove = move;
}
Переписывать на обширные варианты, которые так не воспринимают, уже поздно - это только актуальный кусок функции (есть еще один кусок, но при перемещении он всегда false), а объектов много и они разные, но проблема только с теми, у которых есть картинка в момент события OnMouseDown (Эта функция только помешает объект в переменную ObgDivWinForMove и вычисляет смещение позиции объекта от позиции курсора). Нужно только отключить в Опере и Мозиле DragInDrop, но эти броузеры не знают события OnDrag и подобные им. В сети для скриптов ничего не нашел.
Вопрос: Как скриптом отключить в Мозиле и Орере события DragInDrop (можно и для картинки отдельно) или как минимально изменить код функции, что бы вертикальное перетаскивание картинок не воспринималось этим броузерами, как DragInDrop. Предложения по background-image не пройдут - на картинках MAP's замысловатого узора. Возможно проблема только в свойствах картинки, но как эти свойства отрубить.