Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery UI扩展可拖动;Snap";线_Javascript_Jquery_Css_Jquery Ui_Draggable - Fatal编程技术网

Javascript jQuery UI扩展可拖动;Snap";线

Javascript jQuery UI扩展可拖动;Snap";线,javascript,jquery,css,jquery-ui,draggable,Javascript,Jquery,Css,Jquery Ui,Draggable,我试图使用jQueryUI的可拖动特性扩展元素将捕捉到的区域。现在,我可以使用以下基本代码使元素捕捉到另一个元素: $('.drag').draggable({ containment: 'parent', snap: true }); 我遇到的问题是,一旦我将一个元素拖离另一个元素,我就会失去捕捉功能。是否有方法延伸确定捕捉到何处的线 例如,假设我们有3个元素,我想在同一垂直轴上对齐所有三个元素。该轴始终位于任何图元的左侧,并随图元一起移动。我是否可以捕捉到元素#1的垂直轴,

我试图使用jQueryUI的可拖动特性扩展元素将捕捉到的区域。现在,我可以使用以下基本代码使元素捕捉到另一个元素:

$('.drag').draggable({
    containment: 'parent',
    snap: true
});
我遇到的问题是,一旦我将一个元素拖离另一个元素,我就会失去捕捉功能。是否有方法延伸确定捕捉到何处的线

例如,假设我们有3个元素,我想在同一垂直轴上对齐所有三个元素。该轴始终位于任何图元的左侧,并随图元一起移动。我是否可以捕捉到元素#1的垂直轴,而不考虑元素#2或#3的垂直位置

[Element#1]||
|               |                  |
|               |                  |

| 可以创建一个特殊的拖曳参照对象作为捕捉轴

$(函数(){
$('.drag').draggable({
停止:功能(事件、用户界面){
//删除所有预先存在的拖动参照
$('.drag reference').remove();
$('.drag')。每个(函数(i,项){
var$reference=$(“”,{'class':'drag reference'});
变量$elem=$(项目);
var$container=$elem.parent();
变量位置=$elem.position();
var left=位置left+‘px’;
$reference.insertBefore($elem);
$reference.css({
排名:0,
左:左,,
高度:$container.height()
});
});
},
包含:'父',
捕捉:'.拖动引用,.拖动'
});
});

我在.drag reference对象上有一个红色边框,只是为了向您展示它们是如何工作的,但是如果删除该边框,您应该具有您想要的行为,并且没有任何可见的瑕疵来泄露您的技巧。

您可以创建一个特殊的drag reference对象作为捕捉轴

$(函数(){
$('.drag').draggable({
停止:功能(事件、用户界面){
//删除所有预先存在的拖动参照
$('.drag reference').remove();
$('.drag')。每个(函数(i,项){
var$reference=$(“”,{'class':'drag reference'});
变量$elem=$(项目);
var$container=$elem.parent();
变量位置=$elem.position();
var left=位置left+‘px’;
$reference.insertBefore($elem);
$reference.css({
排名:0,
左:左,,
高度:$container.height()
});
});
},
包含:'父',
捕捉:'.拖动引用,.拖动'
});
});

我在上有一个红色边框。拖动引用对象只是为了向您展示它们是如何工作的,但是如果您删除该边框,您应该会有您想要的行为,没有任何可见的瑕疵来泄露您的技巧。

完美!谢谢你,这正是我想要的。(你非常有用的图表带来了一些重要的荣誉。很好地描述了这个问题。)哈,谢谢!我觉得我无法用语言来描述它,所以我不得不“画”出来。我做了件好事!完美的谢谢你,这正是我想要的。(你非常有用的图表带来了一些重要的荣誉。很好地描述了这个问题。)哈,谢谢!我觉得我无法用语言来描述它,所以我不得不“画”出来。我做了件好事!
[Element #1]    |                  |
|               |                  |
|               |                  |
|<-- Snap to here regardless of "y" location
|               |                  |
|               |                  |
|               [Element #2]       |
|               |                  |
|               |<-- Or to here    |
|               |                  [Element #3]
|               |                  |
|               |                  |<-- Or to here
$(function() {
  $('.drag').draggable({
      stop: function (event, ui) {
          // Remove any pre-existing drag references
          $('.drag-reference').remove();

          $('.drag').each(function (i, item) {
              var $reference = $('<div>', { 'class': 'drag-reference' });
              var $elem = $(item);
              var $container = $elem.parent();
              var position = $elem.position();
              var left = position.left + 'px';

              $reference.insertBefore($elem);
              $reference.css({
                  top: 0,
                  left: left,
                  height: $container.height()
              });
          });
      },
      containment: 'parent',
      snap: '.drag-reference, .drag'
  });
});