Скролл перетаскиванием
Мне требуется сделать аналог "руки" в различных программах, например acrobat reader, чтобы при перемещении курсора мыши в нажатом состоянии левой кнопки, страница браузера скролилась вместе с этим перемещением.
Вот такой скрипт. Но работает он жутко коряво. Почему так? Как надо? Посоветуйте, пожалуйста. var down = 0; var x = 0; var y = 0; var dx; var dy; document.onmousedown = function(e) { e = e || window.event; down = 1; x = e.clientX; y = e.clientY; } document.onmouseup = function(e){ e = e || window.event; down = 0; } document.onmousemove = function(e){ e = e || window.event; var move_state = document.getElementById('move_state'); var xy = document.getElementById('xy'); if(down == 1){ dx = e.clientX - x; dy = e.clientY - y; window.scrollBy(dx, dy); x=e.clientX; x=e.clientY; }else{ } } |
bayah,
Вызывайте функцию не на всём элементе, а ток при наведении-нажатии на конкретный элемент, покольку - брауз вынужден при .onmouseьщму на весь документ - отслеживать постоянно и на всём документе положение курсора Т.е должен быть drag-and-drop элемент( типо картинка руки) , изначально скрыт, при нажатии на страницу, возникает элемент(элемент возникает только на чистом и нужном пространстве, т.к есть еще и элементы управления, которые нужно тыкать мышью), вот по наведению и нажатию на него, - двигаем и позицию данного элемента и скролл страницы |
не совсем понял, почему на конкретном элементе делать обработчик, мне все равно скроллить всю хтмл страницу
я же не перетаскиваю какой-то конкретный элемент, я вообще их не перетаскиваю |
Часовой пояс GMT +3, время: 02:31. |