可调整大小的容器中可拖动元素的收容问题

汤姆

我以为这很简单,但是当在可调整大小的容器中放置可拖动元素时,jQuery UI中似乎存在一些错误。

以下代码允许将可拖动元素放置在容器的外部稍稍一点,因为调整大小手柄(jsfiddle此处)会产生额外的高度

的HTML

<div class="container2">
    <div class="item2"></div>
</div>

的CSS

.container2 {
    min-width:300px;
    min-height:200px;
    outline:1px solid black;
}
.item2 {
    width:50px;
    height:50px;
    background-color:red;
}

jQuery的

$(".container2").resizable();

$(".item2").draggable({
    containment: ".container2"
}).resizable({
    containment: ".container2"
});

所以我通过使用以下代码将容器设置为容器的坐标来解决此问题

$(".item2").draggable({
    start: function (event, ui) {
        var containmentX1 = $(".container2").offset().left;
        var containmentY1 = $(".container2").offset().top;
        var containmentX2 = ($(".container2").outerWidth() + $(".container2").offset().left - $(this).outerWidth())
        var containmentY2 = ($(".container2").outerHeight() + $(".container2").offset().top - $(this).outerHeight())
        $(this).draggable({
            containment: [containmentX1, containmentY1, containmentX2, containmentY2]
        });
    },
}).resizable({
    containment: ".container2"
});

除一个问题外,此方法工作正常。仅在第二次移动可拖动元素时设置容纳坐标。

我使用create而不是开始解决这个问题,但是如果调整容器大小,则不会更改坐标。

有没有一种方法可以在第一次拖动时将坐标识别为容纳区域?

保利托

您可以将遏制重新计算包装到单独的函数中,并在初始化可拖动对象(创建时)以及每次调整容器大小(停止时)后调用它

$(".container2").resizable({
stop: reCalcBounds
});

$(".item2").draggable({
    create: reCalcBounds
}).resizable({
    containment: ".container2"    
});

function reCalcBounds(){
 var $item =  $(".item2");
 $container = $(".container2");
 var containmentX1 = $container.offset().left;
    var containmentY1 = $container.offset().top;
    var containmentX2 = ($container.outerWidth() + $container.offset().left - $item.outerWidth())
    var containmentY2 = ($container.outerHeight() + $container.offset().top -$item.outerHeight())
    $item.draggable("option", "containment", [containmentX1, containmentY1, containmentX2, containmentY2]);

}

看到更新的小提琴

我认为您还需要根据可拖动项的位置来更改可调整大小的容器的minWidth和minHeight,为此您可以使用可拖动项的“停止”回调

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery UI在父容器中的可拖动和可调整大小的div中出现z-Index问题

来自分类Dev

jQuery UI可拖动+可调整大小的包含问题

来自分类Dev

jQuery UI可调整大小和可拖动的问题

来自分类Dev

div中可调整大小和可拖动的图像

来自分类Dev

使用内部滚动条创建可拖动的,可调整大小的div容器

来自分类Dev

jQuery可拖动和可调整大小在动态生成的元素中无法一起使用

来自分类Dev

具有可调整大小/可拖动元素的响应式jQuery UI

来自分类Dev

在相同元素上可拖动和可调整大小的jQuery

来自分类Dev

拖放后可拖动和可调整大小

来自分类Dev

可调整鼠标大小的可拖动小部件

来自分类Dev

ExtJS 4.2可调整大小的可拖动组件

来自分类Dev

在Java中绘制形状对象(可拖动,可调整大小并可以旋转)

来自分类Dev

Angular 8中可拖动和可调整大小的垫对话框

来自分类Dev

如何获得可拖动和可调整大小的图像以及仅可调整div的图像?

来自分类Dev

可调整大小的可移动矩形

来自分类Dev

jQuery可调整大小的可拖动闪烁,用于CSS3转换

来自分类Dev

jQuery UI同时使用可调整大小和可拖动

来自分类Dev

具有角度的可拖动和可调整大小的div

来自分类Dev

可拖动和可调整大小的DIV不起作用

来自分类Dev

Javascript Grid UI-可拖动和可调整大小

来自分类Dev

jQuery可调整大小和可拖动无法同时工作

来自分类Dev

具有z-index的可拖动,可调整大小的div

来自分类Dev

jQuery / Javascript可拖动和可调整大小不适用于div克隆

来自分类Dev

Android样式拖动可调整大小菜单

来自分类Dev

通过拖动使d3 div可调整大小

来自分类Dev

Android样式拖动可调整大小菜单

来自分类Dev

调整容器宽度并使其可调整大小

来自分类Dev

GLSL中的可调整大小的数组

来自分类Dev

AlloyUI中的可调整大小的面板

Related 相关文章

  1. 1

    jQuery UI在父容器中的可拖动和可调整大小的div中出现z-Index问题

  2. 2

    jQuery UI可拖动+可调整大小的包含问题

  3. 3

    jQuery UI可调整大小和可拖动的问题

  4. 4

    div中可调整大小和可拖动的图像

  5. 5

    使用内部滚动条创建可拖动的,可调整大小的div容器

  6. 6

    jQuery可拖动和可调整大小在动态生成的元素中无法一起使用

  7. 7

    具有可调整大小/可拖动元素的响应式jQuery UI

  8. 8

    在相同元素上可拖动和可调整大小的jQuery

  9. 9

    拖放后可拖动和可调整大小

  10. 10

    可调整鼠标大小的可拖动小部件

  11. 11

    ExtJS 4.2可调整大小的可拖动组件

  12. 12

    在Java中绘制形状对象(可拖动,可调整大小并可以旋转)

  13. 13

    Angular 8中可拖动和可调整大小的垫对话框

  14. 14

    如何获得可拖动和可调整大小的图像以及仅可调整div的图像?

  15. 15

    可调整大小的可移动矩形

  16. 16

    jQuery可调整大小的可拖动闪烁,用于CSS3转换

  17. 17

    jQuery UI同时使用可调整大小和可拖动

  18. 18

    具有角度的可拖动和可调整大小的div

  19. 19

    可拖动和可调整大小的DIV不起作用

  20. 20

    Javascript Grid UI-可拖动和可调整大小

  21. 21

    jQuery可调整大小和可拖动无法同时工作

  22. 22

    具有z-index的可拖动,可调整大小的div

  23. 23

    jQuery / Javascript可拖动和可调整大小不适用于div克隆

  24. 24

    Android样式拖动可调整大小菜单

  25. 25

    通过拖动使d3 div可调整大小

  26. 26

    Android样式拖动可调整大小菜单

  27. 27

    调整容器宽度并使其可调整大小

  28. 28

    GLSL中的可调整大小的数组

  29. 29

    AlloyUI中的可调整大小的面板

热门标签

归档