【发布时间】:2012-03-04 04:43:29
【问题描述】:
我正在更新我自己的可拖动脚本,我想知道 jquery-ui 如何允许您将元素的位置设置为相对,并且仍然允许您移动它而不影响它周围的任何元素也是相对定位和浮动的?
截至目前,我当前的脚本采用任何元素并获取其位置,但是当您拖动它时将其设置为绝对,因此它周围的所有元素最终都会移动以取代它的位置。
我唯一的两个想法是:
a) 自动将页面上的所有元素设置为 position:absolute 当我移动一个可拖动的元素时(看起来效率很低)。
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/
我怎样才能达到同样的效果?
【问题讨论】:
-
>创建当前元素的不可见副本,该副本将保留在确切位置。我以前见过这样做来达到这种效果
-
我打算把它作为最后的手段,但是,我有点想了解我所有的选择,而且肯定有更好的方法。我很确定 jquery-ui 不是这样做的,因为我检查了是否有任何元素已添加到文档中并且没有添加。
-
你能给一个演示链接吗?用
position:relative显示这个? -
这里,它也用 float:left 显示:jsfiddle.net/aNk6e/17
标签: javascript position draggable jquery-ui-draggable