Подтвердить что ты не робот

Пожалуйста, порекомендуйте плагин JQuery, который обрабатывает обнаружение столкновений для перетаскиваемых элементов

Мы используем плагин Draggable JQuery UI и должны запрещать перекрытие между нашими элементами. Мы могли бы написать некоторое обнаружение столкновения, но предпочли бы использовать проверенный пакет. Какие-либо предложения?

4b9b3361

Ответ 1

Вы можете попробовать jquery-collision плюс jquery-ui-draggable- столкновение. Полное раскрытие: я только что написал и выпустил их на sourceforge.

Первое позволяет это:

var hit_list = $("#collider").collision(".obstacle");

который является списком всех ".obstacle", которые перекрывают "#collider".

Вторая позволяет:

$("#collider").draggable( { obstacle: ".obstacle" } );

Что дает вам (между прочим) событие "столкновения" для привязки к:

$("#collider").bind( "collision", function(event,ui){...} );

И вы даже можете установить:

$("#collider").draggable( { obstacle: ".obstacle", preventCollision: true } );

чтобы предотвратить "#collider" от когда-либо перекрывающегося ".obstacle" при перетаскивании.

Ответ 2

Быстрый поиск плагинов jQuery:

Collidable Draggables

Похоже, это еще рано, но, возможно, стоит проверить.

Ответ 3

Я знаю, что этот вопрос довольно старый, но, может быть, вы найдете это полезным: Плагин проверки конфликтов для jQuery.

Описание на немецком языке, но оно должно быть само собой разумеющимся. Вы можете использовать два отдельных элемента или даже набор элементов и вернуть набор всех сталкивающихся элементов.

Ответ 5

Предполагая, но я думаю, что вам нужно будет найти здесь:

$. event.special.drop

Он использует знаменитый файл $.event.special.drag jQuery для создания события drop. Вы можете поместить свой собственный javascript-код под .bind( "drop", function( event ){ этот элемент внутри этой функции представляет объект с классом "drop", который вы определили, и объект event.dragTarget является объектом, который перетаскивается.

Больше документа на сайте, указанном выше. Это все равно, что мне нужно.