Неправильно работает перетаскивание слоя
Здравствуйте!
На странице есть слой с overflow:hidden и с большой картинкой внутри. Содержимое слоя перетаскивается по onMouseDown такой функцией: function Move ( e ) { if ( !e ) e = window.event; var x = e.pageX || e.x; var y = e.pageY || e.y; var elem = document.getElementById("Layer"); document.onmousemove = function ( e ) { if ( !e ) e = window.event; var x2 = e.pageX || e.x; var y2 = e.pageY || e.y; elem.scrollTop -= ( y2 - y ); y = y2; elem.scrollLeft -= ( x2 - x ); x = x2; } document.onmouseup = function () { document.onmousemove = null; }; } В Опере, Файрфоксе, Хроме и Сафари всё работает корректно. Но в ИЕ при перетаскивании содержимое слоя, во-первых, дёргается туда-сюда (чем больше расстояние, на которое уже перетащили, тем сильнее), а во-вторых, скорость перетаскивания в два раза медленнее, чем нужно. Может быть, кто-нибудь знает, что здесь можно сделать? |
|
Спасибо за советы. Сделал через clientX и clientY (position:absolute у слоя уже было) — скорость перетаскивания стала нормальной. Дёргание полностью не исчезло, но стало значительно меньше (уже можно пользоваться).
Причём, если перетаскивать слой строго по вертикали или по горизонтали, дёргания вообще нет — оно заметно, только если перетаскивать слой по диагонали, то есть когда одновременно изменяются координаты и по x, и по y. В идеале, конечно, хотелось бы избавиться и от него. |
Часовой пояс GMT +3, время: 00:24. |