![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
18.04.2013, 02:44
|
Профессор
|
|
Регистрация: 15.08.2012
Сообщений: 285
|
|
Как определить положение объекта при drag and drop?
Делаю по аналогии
http://javascript.ru/ui/draganddrop#refaktoring
Скажем я зацепил объект A и перемещаю его
Объект A скажем размером 100x100 px и мне нужно его положить в объект B. Но как определить, что объект A находится над объектом B, если курсор мыши еще не находится над ним?
Также хотелось бы узнать что за события
onDrag
onDragEnter
onDragLeave
onDragOver
onDragStart
onDrop
и тд.
Вообще читая статью ожидал увидеть описание именно этих событий, а оказывается все строится только на событиях мыши.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
18.04.2013, 04:31
|
Профессор
|
|
Регистрация: 15.08.2012
Сообщений: 285
|
|
И подскажите, пожалуйста, как избавиться от ошибки
Uncaught TypeError: Cannot read property 'className' of null
document.onmousemove
Вызванной element.parentNode.className
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
18.04.2013, 08:58
|
Профессор
|
|
Регистрация: 27.04.2012
Сообщений: 1,410
|
|
чтобы узнать находится объект над объектом, нужно знать координаты этих двух объектов, а также их высоту и длинну.. а там уже по условиям (if)...
что насчет element.parentNode.className.. попробуйте вывести в консоль cjnsole.log(element.parentNode) и посмотрите что там будет. возможно там лежит не то что вы хотите
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
18.04.2013, 10:13
|
![Аватар для danik.js](https://javascript.ru/forum/image.php?u=8952&dateline=1362465013) |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
А смысл определять положение блока? Тем более что не во всех браузерах будет отображаться призрак блока. Сработало событие ondragover - значит курсор над элементом-акцепотором. Что еще для счастья нужно?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
18.04.2013, 10:47
|
Профессор
|
|
Регистрация: 27.04.2012
Сообщений: 1,410
|
|
чел хочет, чтобы был объект над объектом, а не на мышь над объектом.. я сказал
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
18.04.2013, 13:25
|
Профессор
|
|
Регистрация: 15.08.2012
Сообщений: 285
|
|
Вообще да хотел, сделать если объект над объектом, но подумал и решил сделать по курсору мыши. По положению корректно определить очень сложно, нужно получается определить, если он скажем на двух объектах сразу, на каком именно объекте он БОЛЬШЕ в данный момент. Пришел к выводу что смысл, смысла нет, и особо это ничего не изменить. Получится почти тоже, что если курсор мыши над объектом
Насчет element.parentNode.className, я делаю проверку, при событии onmousemove, если
if(element.parentNode.className == "My_class") то вставляю объект.
класс есть не у всех элементов, поэтому очевидно вылезает ошибка. Работе она не мешает, но хотелось бы убрать element.parent.hasAttribute("My_class"), тоже дает ошибку
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
18.04.2013, 13:27
|
Профессор
|
|
Регистрация: 15.08.2012
Сообщений: 285
|
|
По поводу событий ongrag.... и тд. я честно говоря не очень понял. Было бы интересно узнать как и где их можно использовать, для чего они предназначены. Коротких описаний этих событий много нашел, а вот нормальной статьи описывающих их работу нет. Может кто-подскажет, что нибудь по этому поводу.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
18.04.2013, 13:33
|
![Аватар для Aetae](https://javascript.ru/forum/image.php?u=4993&dateline=1299014303) |
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,590
|
|
Дело в том, этот стандарт аутсорсил инопланетянин, ни слухом ни духом не ведавший о человеческом вебе. Потому сейчас все продолжают использовать самописный drag на основе mousemove, а эту хрень применяют только в очень специфических случаях.)
__________________
29375, 35
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
18.04.2013, 13:40
|
Профессор
|
|
Регистрация: 27.04.2012
Сообщений: 1,410
|
|
я применял драп дроп. перетягивал файлы (картинки) с рабочего стола (папки) в браузер. конечно есть input file для этого. у меня работало и так и так (так сказать для удобства, точней для понтов)
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
18.04.2013, 13:40
|
Профессор
|
|
Регистрация: 27.04.2012
Сообщений: 1,410
|
|
я применял драп дроп. перетягивал файлы (картинки) с рабочего стола (папки) в браузер. конечно есть input file для этого. у меня работало и так и так (так сказать для удобства, точней для понтов)
|
|
|
|