![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| Michael.de |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 4 Всего: 9 |
Всем добрый день
Есть простой код:
В нём ф-ция move() стартует при нажатии на любой из маленьких div-ов. А как мне её заставить запускаться при нажатии и перетаскивании (не отпуская) мыши? Мне просто нужно осуществить перетаскивание объектов, а актуальные координаты мыши я получу через clientX и clientY. |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
обычно вашу задачу разделяют на три этапа
1 этап нажата кнопка на какомто блоке мы запускаем по этому событию функцию которая нам создает флаг кнопка такая то нажата 2 этап пермешение мыши мы отслеживаем перемешение мыши при помощи другой функции которая каждый раз при запуске проверяет флаги и если какой то из флагов включен то пермещает блок 3 этап клавиша отпушина запускается функция которая обнуляет флаг и премешение блока прекрашается |
|||
|
||||
| Michael.de |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 4 Всего: 9 |
krundetz, со вспомогательным boolean согласен, спасибо
У меня вопрос по 2 этапу: ф-ция, отслеживающая перемещение мыши... получается она должна быть "фоновым" процессом {через window.setInterval() например} ? Или как это ещё реализовать? |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 3 Всего: 60 |
посмотри тут
-------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| krundetz |
|
|||
![]() Вечный странник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1400 Регистрация: 14.6.2007 Где: НН(Сормово) Репутация: 1 Всего: 69 |
Michael.de, нет window.setInterval() не обязательно использовать
достаточно повесить функцию обработчик на событие перемещение мышы И обязательно посмотрите на ссылку приведенную Sanchezzz, та показан пример использования скрипт пермешения и дана ссылка на скрипт и обяснение как он работает. Это сообщение отредактировал(а) krundetz - 14.8.2008, 15:09 |
|||
|
||||
| Michael.de |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 4 Всего: 9 |
Sanchezzz, krundetz: посмотрел ссылку. Добавил листинг ф-ций dragObject() и Position() ... не пашет :/
Попробую сам что-нибудь сочинить... потом отпишусь P.S. Нашёл работающий пример от 12345c в >>этой<< теме... разбираюсь Это сообщение отредактировал(а) Michael.de - 14.8.2008, 19:03 |
|||
|
||||
| Michael.de |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 4 Всего: 9 |
Чуть переделанный пример из первого поста:
добавил обработчики (onmouseover, onmouseout, onmousedown, onmouseup и onmousemove) и две константы: clicked (нажато/отжато) и over (сверху/за пределами). Вопрос: Почему, когда я кликаю и тащу мышь по квадрату с надписью (я повесил обработчики только на него), а затем отпускаю её, ф-ция висящая на object.onmouseup=function(){clicked=false;} не срабатывает (23 стр.) - при дальнейшем движении мыши (и при отпущенной кнопке!!) выскакивает alert() из ф-ции move(), хотя там в 16 стр. чётко прописано: if (over && clicked) ... ???? Это же какая-то мистика Это сообщение отредактировал(а) Michael.de - 14.8.2008, 23:41 |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 3 Всего: 60 |
ты наверное и по сайты не прошелся...
вот все работает чуть ниже было решение всех проблем и крос-браузерное... ссылка -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| Michael.de |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 346 Регистрация: 22.3.2005 Где: Deutschland Репутация: 4 Всего: 9 |
Sanchezzz, да нет, видел я это решение, иначе не написал бы пару постов выше:
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |