![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| InfMag |
|
|||
|
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 2 Всего: 4 |
У меня есть таблица, которая будет все время выравниваться по центру, у меня есть <img> внутри <td> тега и мне нужно реализовать чтобы хватать и таскать этот <img> внутри <td>. Кто-нибудь может мне объяснить как это реализовать??
|
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
InfMag,
1. onmousedown на img - start drag 2. onmousemove - dragging 3. onmouseup на td - end drag, привязка img к td |
|||
|
||||
| InfMag |
|
|||
|
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 2 Всего: 4 |
dsCode, а как это реализовать кодом?
|
|||
|
||||
| InfMag |
|
|||
|
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 2 Всего: 4 |
Как хотябы получить координаты мыши внутри таблицы?
|
|||
|
||||
| dstorm81 |
|
|||
![]() бездельник ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1178 Регистрация: 18.1.2006 Где: (16RU) Репутация: 20 Всего: 39 |
http://www.walterzorn.com/dragdrop/dragdrop_e.htm - тут реализация ползунка
http://tool-man.org/examples/sorting.html - тут тоже умно и красиво -------------------- на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#) |
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
InfMag, координаты мыши абсолютны и не зависят от таблицы. Эмм... вернее, не абсолютны, все же отностительны, но - с учетом скролинга их надо брать. Вообще: это либо e.pageX (e.pageY), либо e.clientX (e.clientY) - в зависимости от браузера. Плюс к этому нужно учесть скроллинг - либо document.body.scrollLeft - горизотальный, document.body.scrollTop - вертикальный, либо document.documentElement.scrollTop (document.documentElement.scrollLeft) если стриктМод используется.
dstorm81, тоже первую ссылку хотел дать =) Это сообщение отредактировал(а) dsCode - 23.11.2007, 14:19 |
|||
|
||||
| InfMag |
|
|||
|
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 2 Всего: 4 |
Дык у меня таблица, которая по центру выравнивается и она постоянно будет по разным координатам находиться. Получается не вариант такое провернуть? Нужно таблицу к краям прибивать полюбому?
|
|||
|
||||
| InfMag |
|
|||
|
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 2 Всего: 4 |
dsCode, Что за стриктМод ??
|
|||
|
||||
| InfMag |
|
|||
|
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 2 Всего: 4 |
А какие значения к каким браузерам относятся?? Это сообщение отредактировал(а) InfMag - 28.11.2007, 12:31 |
|||
|
||||
| InfMag |
|
|||
|
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 2 Всего: 4 |
dsCode, блин, странно... Вывожу скроллинг: document.body.scrollLeft и document.body.scrollTop - все нормально выводится, но координаты мыши никак не хочет отдавать. Я и e.pageX (e.pageY) и e.clientX (e.clientY) пробовал - не выводит - пишет ошибка на странице... Что это может быть??
|
|||
|
||||
| InfMag |
|
|||
|
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 2 Всего: 4 |
Нашел выход: event.clientX и event.clientY
|
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
InfMag,
ну поэкспериментируйте, я на вскидку сказал, не помню (проверять - влом, щас времени нет ;)) - что-то для Оперы (pageX [Y], если мне не изменяет память), что-то для IE и FF (clientX [Y]). Поставьте if'ы - посмотрите.
ну естественно. Я думал, вы цепляете события, примерно так: obj.onsomeevent = function(e) { e = e || window.event; ... } Конечно же, event надо использовать, а не неопределенное e. Строгий режим документа, где, например, присутствует DOCTYPE. все вариант. Можно вообще без координат ячеек таблицы обойтись. Координаты Вам нужны только для драг&дропа, когда вы тащите объект. Сделайте небольшое смещение курсора (чтобы он слегка выходил за пределы изображения, которое перетаскивается) - таким образом onMouseUp произойдет на ячейки таблицы, а там Вы его (маусАп) и обработаете, т.е. привяжете изображение к ячейке. someTd.onmouseup = function(e) { e = e || window.event; this.привязатьОбъект(изображение_которое_перетаскивалось); ... } Это сообщение отредактировал(а) dsCode - 28.11.2007, 13:58 |
|||
|
||||
| InfMag |
|
|||
|
… ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1037 Регистрация: 21.11.2004 Репутация: 2 Всего: 4 |
Остался вопрос, есть проблема когда я таскаю картинку в интернет эксплорере, я еще тащу пару пикселей и она тащится нормально, если дальше, то интернет эксплорер меняет мой курсор на курсор запрета и дальше не тащит. Как с ним бороться?
|
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
InfMag, потому что маус уезжает за пределы изображения (а для document'a маусМув не указан). Попробуйте привязать тот же код (и соответственно, удалить, когда произойдет drop) на document.
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Нужно в функции таскания отменять дальнейшее событие
Это сообщение отредактировал(а) ksnk - 28.11.2007, 17:19 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |