带边框的Div在dragend

时间:2016-04-14 13:22:50

标签: javascript jquery html css jquery-ui

我有一个带有几个可拖动和可调整大小的块的容器。因为我希望能够向用户显示哪个块处于“活动状态”,所以我将类active添加到其中以添加边框。

现在的问题是当我拖动块并将其放入容器中时,div会越来越大。这当然不太实际。

当我从active类中删除样式时,这不会发生,因此这与正在添加的边框有关。选择块时,将从所有块中删除此类。

请注意,必须为此项目设置widthheight

我创建了一个小小的演示并添加了一个显示问题的小提琴。 Fiddle

只需拖动其中一个块几次。有人可以向我解释为什么会发生这种情况以及如何解决它?

2 个答案:

答案 0 :(得分:1)

请勿将Bootstrapwidth设置为drop:

height

Updated Fiddle

您也知道,如果您调整块的大小,则会遇到另一个问题,function setDimensions(obj) { obj.css('position', 'absolute'); obj.css("left",parseInt(obj.css("left")) / ($container.width() / 100)+"%"); obj.css("top",parseInt(obj.css("top")) / ($container.height() / 100)+"%"); //obj.width((obj.width() / $container.width()) * 100 + '%'); //obj.height((obj.height() / $container.height()) * 100 + '%'); } width也会发生变化。您可能希望使用height的{​​{1}}函数保存块的初始widthheight,然后将这些大小与{{中的结束大小进行比较1}}功能,仅更新resizablestart()

(当然,除非调整大小是预期的行为)

答案 1 :(得分:1)

正如@Titus所述,问题是heightwidth在丢弃时错误地计算了它还添加了width的{​​{1}}。

由于在这些元素上为此项目设置borderwidth非常重要,因此我使用了jQuerys heightinnerWidth()函数来计算没有边框的元素的innerHeight()width

由于有边框,我还需要在计算中删除此数字。下面的代码解决了我的问题。

height