在单独的容器中拖放,并调整放置的元素的位置
Drag and drop in separate containers, and adjust position of dropped element
[Edit]:TCHdvlp对其回复的评论中给出了解决方案。非常感谢
我需要将元素从一个容器(container1)拖到另一个容器中(container2),然后再拖回来,就像这个小提琴一样:
http://jsfiddle.net/U2nKh/20/
(这不是我创建的:见原始问题)
正如您在上面的示例中看到的,当元素附加到其新容器时,其"style"属性将被擦除,并捕捉到新容器的左上角。
$(ui.draggable).appendTo($(this)).removeAttr('style');
我希望拖车能留在新集装箱里,放在那里。
但如果我删除.removeAttr("样式"),
$(ui.draggable).appendTo($(this));
位置信息被保留,但由于可拖动对象的父对象已更改,因此位置信息是不精确的。因此,当从容器1放入容器2时,我的可拖动对象的位置要低得多,而在另一种情况下则要高得多。
我能够根据集装箱的相对位置来计算元素应该"降落"的新位置。但我不知道该如何定义这个职位。
- 我应该让.removeAttr("样式")用新值从头开始重新创建它吗?但是怎么做呢
- 我应该删除那个部分,但修改位置值吗?但是怎么做呢
我很清楚,你可以给我一些建议。
谢谢!
仔细阅读所有小提琴!
可拖动div具有top:10px;
和left:10px;
属性。当它被拖动时,这些属性会发生变化。当它被放置在另一个可丢弃区域时,removeAttr('style');
将删除内联样式并设置回10*10px偏移。但是,它并没有折断。
此外,可拖动元素是position:absolute
,但可丢弃区域是position:relative
。这意味着子元素相对于其父元素定位。
这就是为什么,对于原始小提琴,10*10px的位置看起来总是一样的,无论可丢弃的区域是什么。
在css中删除容器的position:relative
和分区的position:absolute
。
删除dropped
函数中的removeAttr
和append
。
因为我们不希望元素附加到区域,所以我们不使用append
。我们将使用2个变量来比较上一个和当前可丢弃区域。
http://jsfiddle.net/TCHdevlp/U2nKh/576/
- 调整<音频>元素
- 如何在使用react时动态调整元素大小
- 手动调整元素大小;不要在Chrome中激发突变观察者
- 跨浏览器:如何根据视口高度调整元素的垂直位置
- 根据计数和固定包装器调整元素的大小和计算大小
- 使用Javascript调整元素大小时,如何刷新自动边距
- 通过拖动调整元素大小
- 动态调整元素的大小&显示内联
- 基于浏览器高度调整元素大小
- 同位素:在布局前调整元素大小
- 用鼠标不断调整元素大小的最佳方法是什么?
- 在文档调整大小时调整元素的大小
- 如何通过拖动正确调整元素的大小
- Chrome和全屏api:调整元素大小以填充全屏窗口不工作
- 调整元素边框的大小
- 根据flexx中的行动态调整元素的大小
- 通过调整元素(li)的大小's边缘
- 调整元素大小以适应容器
- 如何显示.js调整元素大小
- Internet explorer在页面更新时重新调整元素的大小