14
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

jQueryUIのDraggableとDroppableで枠にぴっちりハマるBOXをつくる

Last updated at Posted at 2017-06-22

jQueryUIのDraggableとDroppable、便利ですがDraggableとDroppableの大きさが同じ場合に
Snapオプションを指定してもぴっちりハマらない。
Revertオプションを指定してもカーソルがDroppable要素の中に入ってさえいれば、許可されてしまうので中途半端な位置に要素がDropされちゃうことがある。
参考:jQueryUI公式のデモ

no.png
こういう状態を許したくない


以下のような記述でぴっちりするBOXを作れます。
###draggable側のオプション

  $(".draggable").draggable({
    snap: ".snaptarget", /* ターゲットにスナップする */
    snapMode: "inner",   /* 内側にスナップする */
    revert: "invalid"    /* Droppableな要素以外にDragされた場合、元の位置に戻る */
  });

###droppable側のオプション

$(".snaptarget").droppable({
    drop: function(event, ui) {
     var $srcObj = $(ui.draggable[0]);
     $srcObj.offset($(this).offset());
     return false;
    }
  });

###デモ
CODEPEN

14
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?