|
|
|
| Есть элемент на странице, который можно перетаскивать. И этот же элемент при прокрутке фиксируется. Начальное положение задается в атрибуте style с помощью top и left.
Проблема следующая. Если элемент перетащить куда-либо, а потом покрутить страницу, то элемент перепрыгивает в позицию, которая задана в style. Как сделать, чтобы элемент фиксировался при прокрутке в том месте, куда его перетащили? | |
|
|
|
|
|
|
|
для: Kit
(08.10.2006 в 17:25)
| | Совместить эти 2 скрипта | |
|
|
|
|
|
|
|
для: 12345
(08.10.2006 в 19:46)
| | Вот, посмотрите вложенный файл. Как их можно совместить, обрабатываются ведь разные события? | |
|
|
|
|
|
|
|
для: Kit
(09.10.2006 в 16:42)
| | Они совмещаются через конечный объект. Посмотрю вечером | |
|
|
|
|
|
|
|
для: 12345
(09.10.2006 в 20:01)
| | 12345, можете что-нибудь подсказать?
Я пробовал еще раз сам переписать все так и сяк, но ничего не получается :-( | |
|
|
|
|
|
|
|
для: Kit
(12.10.2006 в 15:08)
| | О, забыл посмотреть, что-то другое заняло внимание по сей день :) | |
|
|
|
|
|
|
|
для: 12345
(12.10.2006 в 15:25)
| | Строчки 50-51 заменить на эти:
elToDrag.style.left = (elX=event.clientX - dX) +'px';
elToDrag.style.top = (elY=event.clientY - dY) +'px';
elX-=document.body.scrollLeft;
elY-=document.body.scrollTop;
|
В FF onmousewheel не работает, поэтому для прокрутки мышью нужно периодически опрашивать положение прокрутки:
if(!document.all)setInterval(fixEl,200); //Вставить, например, 104-ю строчку. | |
|
|
|
|
|
|
|
для: 12345
(12.10.2006 в 15:47)
| | Ура!!! Работает! :-)))
12345, спасибо огромное! Сам мучился две недели :-(
Я в общем-то понимал, что надо подправлять elX и elY, но до меня не дошло, что это надо делать при перетаскивании.
JavaScript - это круто!
Я не стал вставлять
if(!document.all)setInterval(fixEl,200);
|
и у меня в FF все равно работает при прокрутке мышью. FF 1.5.0.1
Спасибо еще раз :-) | |
|
|
|