【问题标题】:Draggable and resizable div with containment goes out of containment具有包容性的可拖动和可调整大小的 div 超出包容性
【发布时间】:2017-06-25 23:53:59
【问题描述】:

我正忙于一个时间表脚本,为此我需要使用 jQuery 可拖动和可调整大小。 但是您是否可以在 te jsFiddle 中看到可拖动对象有一个父对象,但是您可以在每次单击时将其拖动到父对象上方 10 像素。 编辑: 我需要的是它不能被拖到容器外。 谁可以帮忙

http://jsfiddle.net/QBX2B/1/

html:

        <div class="containment" style="display:block; height:40px; width:150px; background-color:#f2f2f2;">
        <div class="baldie" style="display:block; height:40px; width:150px; background-color: rgba(214, 255, 210, .7);"/>
    </div>

jquery:

                $('.baldie').resizable({
                        containment: "parent",

                    }).draggable({
                        grid: [5,0],
                        containment:"parent",
                        drag: function( event, ui ) {

                        }
                    });

【问题讨论】:

  • 您到底想要什么,请正确定义??
  • 您希望将baldie div 拖到父div 之外?
  • 不,它可能无法在刀片之外,但现在它可以在 chrome 上使用

标签: jquery


【解决方案1】:

向容器添加position:relative; 可以解决问题。

我已经修改了你的代码检查运行,你可以检查一下:-

<div class="containment" style="position: relative; display:block; height:40px; width:150px; background-color:#f2f2f2;">
            <div class="baldie" style="display:block; height:40px; width:150px; background-color: rgba(214, 255, 210, .7);"/>
        </div>

检查一下:-

Jquery UI resizable issue expands beyond containment (draggable also used)

【讨论】:

  • @Learner 即使使用您发布的链接中的 jsfiddle,我仍然能够将可拖动对象拖到容器外
  • 有一张针对这个错误的票,建议您的解决方法或修改 jquery ui 插件(奇怪的解决方案):bugs.jqueryui.com/ticket/4489
【解决方案2】:

内联样式不是好习惯。它会导致代码混乱,有时难以阅读。使用 CSS 修改 parent 的 margin 和 padding 我们可以让 child 覆盖整个 parent。 JSFiddle Solution

.baldie{
  display:block; 
    height:40px; 
    width:150px; 
    background-color: rgba(214, 255, 210, .7); 
    margin:1px;
}
.containment{
    position:relative;
    display:block; 
    height:40px; 
    width:150px; 
    background-color:#f2f2f2;
}

【讨论】:

  • 像 @user2389793 一样,我仍然可以每次使用 chrome win7 将元素拖动到容器外几个像素
  • 您需要点击并拖动到右侧,如果您多次执行此操作,每次点击都会向右移动 10px
  • @n8ross 在您的示例中,我仍然可以通过将可拖动的 div 拖动到父级的右侧来将可拖动的潜水拖到父级 div 之外,而不是多次单击它,同时我拖动它向右,div 超出边界
  • @n8ross 我正在使用 chrome,但是如果您在 chrome 中使用我的示例并单击绿色按住它并将其拖动到右侧并释放它,您应该拥有与我相同的东西......如果不是,我不知道出了什么问题,但我可以将它拖到 div 之外,这完全是个谜
  • @user2389793 Solution 我终于能够重现您的错误。添加 1px 边距和填充似乎可以解决问题
猜你喜欢
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 2011-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
相关资源
最近更新 更多