Игнорировать цель при наведении курсора мыши? - PullRequest
3 голосов
/ 28 июля 2011

Я использую скрипт перетаскивания для перемещения объекта вдоль оси X.

Вдоль этой же оси есть другой объект.

Я хочу использовать onmouseover, поэтому, когда курсорнаходится над этим объектом, и я перетаскиваю свой объект, что-то происходит.

Теперь это не будет работать, потому что при перетаскивании перетаскиваемый объект всегда находится над другими объектами.

Как я могузаставить JavaScript игнорировать перетаскиваемый объект?

Редактировать: я использую http://www.webtoolkit.info/javascript-drag-and-drop.html для перетаскивания.

Ответы [ 2 ]

0 голосов
/ 28 июля 2011
0 голосов
/ 28 июля 2011

Я недавно столкнулся с этой проблемой и в конечном итоге использовал этот плагин jQuery: http://www.48design.de/news/2009/11/20/kollisionsabfrage-per-jquery-plugin-update-v11-8/

Это отлично подходит для обнаружения столкновения объектов. Однако , чтобы определить, когда курсор мыши находится над объектом, я использовал трюк, чтобы создать абсолютный блок inline-block размером 1x1 и всегда располагать его там, где находится курсор мыши..

Итак, когда пользователь перетаскивает, чтобы проверить и увидеть, сталкиваются ли объекты, используйте:

if ($('.cursorBlock').collidesWith('.staticBlock')) {
    // objects are colliding
} else {
    // objects are not colliding
}

Так что если вы сохраняете 1x1 .cursorBlock с курсором мыши, как выперетащите, когда курсор находится над элементом .staticBlock, элемент .cursorBlock тоже будет, и столкновение будет обнаружено, даже если реальный объект, который вы «перетаскиваете», будет между ними.

Я знаю, что вы не пометили свой вопрос с помощью jQuery, но я подумал, что все равно отвечу, если это поможет вам.

...