jquery-ui-draggable如何允许使用position:relative?

时间:2012-03-04 04:43:29

标签: javascript position draggable jquery-ui-draggable

我正在努力更新我自己的可拖动脚本,我想知道jquery-ui如何允许你将元素的位置设置为相对,并且仍允许你移动它而不影响它周围的任何元素也相对定位和浮动?

截至目前,我的当前脚本接受任何元素并获取其位置,但是当您拖动它时将其设置为绝对值,因此它周围的所有元素最终都会移位以取代它。

我唯一的两个想法是:

a)自动将页面上的所有元素设置为position:当我移动一个可拖动的(看起来非常低效)时绝对。

b)创建一个保留在确切位置的当前元素的不可见副本。

并且基本上实现:

var e = document.getElementById('div');
console.log(document.defaultView.getComputedStyle(e, null).getPropertyValue("position"));

我可以从中确定是否需要步骤a或b。

但是,据我所知,对我而言,似乎jquery-ui-draggable都没有这些。

以下是使用jquery-ui-draggable的示例:http://jsfiddle.net/aNk6e/17/

我怎样才能达到同样的效果?

1 个答案:

答案 0 :(得分:0)

这就是position: relative的工作原理。该元素仍然会影响文档,就像它处于原始位置一样,但可以移动。

考虑这个小提琴:

http://jsfiddle.net/aNk6e/18/

注意其他两个项目是如何受到影响的,就好像元素处于原始位置但元素被移动一样。

只需操作topleft即可移动元素,而不会影响文档流中的其他元素。