Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Перетаскивание элемента и его фиксирование при прокрутке
 
 автор: Kit   (08.10.2006 в 17:25)   письмо автору
 
 

Есть элемент на странице, который можно перетаскивать. И этот же элемент при прокрутке фиксируется. Начальное положение задается в атрибуте style с помощью top и left.

Проблема следующая. Если элемент перетащить куда-либо, а потом покрутить страницу, то элемент перепрыгивает в позицию, которая задана в style. Как сделать, чтобы элемент фиксировался при прокрутке в том месте, куда его перетащили?

   
 
 автор: 12345   (08.10.2006 в 19:46)   письмо автору
 
   для: Kit   (08.10.2006 в 17:25)
 

Совместить эти 2 скрипта

   
 
 автор: Kit   (09.10.2006 в 16:42)   письмо автору
 
   для: 12345   (08.10.2006 в 19:46)
 

Вот, посмотрите вложенный файл. Как их можно совместить, обрабатываются ведь разные события?

   
 
 автор: 12345   (09.10.2006 в 20:01)   письмо автору
 
   для: Kit   (09.10.2006 в 16:42)
 

Они совмещаются через конечный объект. Посмотрю вечером

   
 
 автор: Kit   (12.10.2006 в 15:08)   письмо автору
 
   для: 12345   (09.10.2006 в 20:01)
 

12345, можете что-нибудь подсказать?
Я пробовал еще раз сам переписать все так и сяк, но ничего не получается :-(

   
 
 автор: 12345   (12.10.2006 в 15:25)   письмо автору
 
   для: Kit   (12.10.2006 в 15:08)
 

О, забыл посмотреть, что-то другое заняло внимание по сей день :)

   
 
 автор: 12345   (12.10.2006 в 15:47)   письмо автору
 
   для: 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-ю строчку.

   
 
 автор: Kit   (12.10.2006 в 16:54)   письмо автору
 
   для: 12345   (12.10.2006 в 15:47)
 

Ура!!! Работает! :-)))

12345, спасибо огромное! Сам мучился две недели :-(
Я в общем-то понимал, что надо подправлять elX и elY, но до меня не дошло, что это надо делать при перетаскивании.

JavaScript - это круто!

Я не стал вставлять

if(!document.all)setInterval(fixEl,200);

и у меня в FF все равно работает при прокрутке мышью. FF 1.5.0.1

Спасибо еще раз :-)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования