jQuery UI Draggable snap选项

  • Post category:jquery

jQuery UI 的 Draggable 组件提供了一个 snap 选项,该选项用于将拖动元素捕捉到网格或其他元素上。在本教程中,我们将详细介绍 snap 选项的使用方法。

snap 选项基本语法如下:

$( ".selector" ).draggable({
  snap: true,
  snapTolerance: 20
});

其中,”.selector” 是 Draggable 的 CSS 选择器,snapTolerance 选项用于指定捕捉到网格或其他元素的距离。

以下是两个示例:

示一:使用 snap 选项将拖动元素捕捉到网格上

$( "#draggable" ).draggable({
  snap: ".ui-widget-header",
  snapMode: "outer",
  snapTolerance: 20
});

这将在名为 draggable 的元素上初始化一个 Draggable 实例,并使用 snap 选项将拖动元素捕捉到 CSS 选择器为 .ui-widget-header 的元素上。snapMode 选项用于指定捕捉模式,”outer” 表示将拖动元素的外部边缘捕捉到目标元素上。snapTolerance 选项用于指定捕捉到目标元素的距离。

示例二:使用 snap 选项将拖动元素捕捉到其他元素上

$( "#draggable" ).draggable({
  snap: ".ui-widget-header",
  snapMode: "inner",
  snapTolerance: 20
});

$( "#droppable" ).droppable({
  drop: function( event, ui ) {
    $( this )
      .addClass( "ui-state-highlight" )
      .find( "p" )
        .html( "Dropped!" );
  }
});

这将在名为 draggable 的元素上初始化一个 Draggable 实例,并使用 snap 选项将拖动元素捕捉到 CSS 选择器为 .ui-widget-header 的元素上。snapMode 选项用于指定捕捉模式,”inner” 表示将拖动元素的内部边缘捕捉到目标元素上。snapTolerance 选项用于指定捕捉到目标元素的距离。然后,在名为 droppable 的元素上初始化一个 Droppable 实例。当拖动元素在 droppable 元素上释放时,将触发 drop 事件,并将该元素的文本更改为 “Dropped!”。

总结:

jQuery UI 的 Draggable 组件提供了一个 snap 选项,该选项用于将拖动元素捕捉到网格或其他元素上。要使用 snap 选项,需要将其与 Draggable 的 jQuery 对象一起使用。可以使用 snap 选项指定一个或多个 CSS 选择器,并使用 snapMode 选项指定捕捉模式。snapTolerance 选项用于指定捕捉到目标元素的距离。当拖动元素捕捉到目标元素时,将执行相应的操作。