javascript - jQuery UI 捕捉到元素然后调整大小以适合容器

标签 javascript jquery html css jquery-ui

https://jsfiddle.net/tk48ecxb/24/

这是我正在使用的代码示例。它在较大尺寸的情况下效果很好,但会破坏小尺寸的盒子。不确定为什么在删除调整大小的框时移动它们,这在我正在处理的实际元素中没有发生。需要这些框,它们在元素中实际上是 svg,以填充较大框的宽度,而不是真正的断断续续或以奇怪的方式连接。

此外,无论如何要在所有框都填满时触发事件?

HTML

<div class="top-row">
<ul class="holderList">
    <li class="holder" id="large"></li>
    <li class="holder" id="medium"></li>
    <li class="holder" id="small"></li>
    <li class="holder" id="tiny"></li>
  </ul>
</div>

<div class="bottom-row">
  <ul>
    <li class="square" id="square1">
</li>
    <li class="square" id="square2"></li>
    <li class="square" id="square3"></li>
    <li class="square" id="square4"></li>
  </ul>
</div>

CSS

ul li{
 border: 1px solid black;
 display: inline-block;
}
.holderList > li{
 margin: 20px;
}

#large{
  height: 200px;
  width: 200px;

}
#medium{
  height: 150px;
  width: 150px;

}
#small{
  height: 100px;
  width: 100px;

}
#tiny{
  height: 50px;
  width: 50px;

}

.square{
  height: 60px;
  width: 60px;
  background: green;
}

JS

$(".square").draggable({
 drag: function(event, ui) {
     var draggable = $(this).data("ui-draggable");
     $.each(draggable.snapElements, function(index, element) {
         ui = $.extend({}, ui, {
             snapElement: $(element.item),
             snapping: element.snapping
         });
         if (element.snapping) {
             if (!element.snappingKnown) {
                 element.snappingKnown = true;
                 draggable._trigger("snapped", event, ui);
             }
         } else if (element.snappingKnown) {
             element.snappingKnown = false;
             draggable._trigger("snapped", event, ui);
         }
     });
 },
 snap: ".holder",
 snapMode: "inner",
 snapped: function(event, ui) {
     var squareWidth = ui.snapElement.width();
     var squareHeight = ui.snapElement.height();


     ui.helper.css({width: squareWidth, height: squareHeight});



 }
 });

最佳答案

显然,我需要做的就是添加 snapTolerance。

现在弄清楚如何在所有窗口都已填满的情况下创建弹出窗口。

关于javascript - jQuery UI 捕捉到元素然后调整大小以适合容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36377957/

相关文章:

javascript - 根据一定的时间延迟执行函数并忽略其他函数的执行

javascript - slider 按钮功能

javascript - 无法让 jQuery .off() 删除事件处理程序

html - 使用 border-radius 创建一个完全对称的圆而不指定高度或宽度

javascript - 通过 JavaScript 设置 anchor 标记的 innerHTML

javascript - D3 力模拟 - 让节点以相同 Angular 更接近一点

javascript - JQuery fileDownload 失败时出现错误

javascript - 有什么方法可以设置绕过 url 的重定向吗?

javascript - 提取/消除imamacros中的重复文本

javascript - JQuery 和操作通过对象标签加载的 SVG?