Drag & Drop в полном объеме
Как реализовать drag & drop в полном его объеме. тоесть, как сам объект перемешать, я научился, а вот немогу найти примера как принимать какой либо областью перемещаемый объект.
чтобы перемещаемый объект не выходил за границы заданной области. |
Вариантов несколько.
Один - это добавить области, которая принимает (dropTarget) - события onmousemove/over/out и отслеживать мышу. При этом указатель мыши может быть НАД перемещаемым объектом. Другой - отслеживать события эти глобально для документа или для большого объекта, и выбирать область по event.target. При этом указатель мыши должен быть РЯДОМ с перемещаемым объектом, чтобы объект его не закрывал. Если такое возможно, то этот способ лучший. Вообще, я много работал над Drag'n'drop в dojo, но уже забыл что там и как... Помню - координаты кешируются dropTarget и по ним определяется над какой именно dropTarget мы сейчас.. В dojo там dojo.dnd.DragManager.. P.S Вот еще что тебе нашел http://snook.ca/archives/javascript/...the_droppable/ |
применять event.target не получится потому как объект перетаскиваемый постоянно под курсором. также неполучится применять события объекта приемника.
(или я пока невижу как) (на счет ссыкли спасибо.. но ангельский мой очень плох :( ) |
event.target работает, если мышь рядом. Специально делаешь так, чтобы мышь была рядом, но не под объектом. Это не всегда применимо, но зато это самый быстрый способ, ваще без проблемный.
В dojo было вроде так - при начале drag'n'drop делается кеш из координат всех дроп-зон, и при событиях проверяем над каким элементом мы находимся и вызываем метод нужной дроп-зоны типа onDragOver, onDragMove и тп. |
Часовой пояс GMT +3, время: 04:51. |