15

Draggable JQuery UI プラグインを使用しており、要素間のオーバーラップを禁止する必要があります。衝突検出を自分で作成することもできますが、テスト済みのパッケージを使用することをお勧めします。助言がありますか?

4

5 に答える 5

16

jquery-collisionjquery-ui-draggable-collisionを試すことができます。完全な開示: 私は sourceforge でこれらを書き、リリースしました。

最初のものはこれを可能にします:

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

これは、「#collider」と重なるすべての「.obstacle」のリストです。

2 つ目は次のことを可能にします。

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

これにより、(とりわけ)バインドする「衝突」イベントが得られます。

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

また、次のように設定することもできます。

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

ドラッグ中に「#collider」が「.obstacle」と重ならないようにします。

于 2011-05-18T23:36:18.497 に答える
3

jQueryプラグインをすばやく検索すると次のようになります。

衝突可能なドラッグ可能

まだ早いようですが、チェックする価値があるかもしれません。

于 2009-04-21T18:21:14.180 に答える
2

I know this question is quite old, but maybe you will find this useful: our Collision Check Plugin for jQuery.

The description is in German, but it should be self-explanatory. You can either use two single elements or even sets of elements and will get back a set of all colliding elements.

于 2010-01-07T13:57:15.627 に答える
1

Googleによると、JQueryプラグインであるgameQueryには「衝突」機能があります。

http://gamequery.onaluf.org/#manual

上のページで「衝突」という単語を検索してください。

このグーグル検索はあなたに他のいくつかのオプションを与えることができます:

http://www.google.com/search?q=jquery+collision+detection

于 2009-04-21T18:18:23.487 に答える
0

仮定ですが、必要なものはここで見つけることができると思います:

$.event.special.drop

jQuery で有名な $.event.special.drag を使用してドロップ イベントを作成します。この関数内の this 要素の下に独自の JavaScript コードを配置する .bind( "drop", function( event ){ と、定義したクラス「drop」を持つオブジェクトを表し、event.dragTarget はドラッグされるオブジェクトです。

上記のリンク先のサイトにさらにドキュメントがあります。とにかくこれが必要でした。

于 2009-07-14T20:00:49.360 に答える