拖拽事件的目标节点的position值一定要为absolute吗?


问题如上

我将要拖拽的li设置为absolute,结果所有li重叠在一起了。
是否有更好办法解决?谢谢

HTML css JavaScript

skfool 9 years, 4 months ago

可以先在css中利用浮动原理给li进行布局,再在js中给li中设置absolute…进行布局转换(top和left为浮动时的值),这样既可以实现拖拽所需条件我不会挤作一团了

能干的妹妹 answered 9 years, 4 months ago

1、初始化的时候设置每一项的位置!
2、用relative,拖拽的时候得改变dom的位置,动态刷新,否则,布局就会混乱,可以参考jqueryui中的sortable来实现!

花甲护航绿坝娘 answered 9 years, 4 months ago

absolute 是脱离文档流的,拖拽发生时如果设置 absolute,则必然会触发浏览器重新排版,后方的元素会填充被拖拽元素的位置,不知道这是不是你想表达的堆叠在一起的概念?

如果你不想让被拖拽的元素脱离文档流,可以使用 relative 为拖拽元素定位,这样被拖拽元素仍然会在文档流中保留自身的位置。

错的不是我 answered 9 years, 4 months ago

可以用j写一个布局转换,在css中先不用absolte,等li加载完再给li一个绝对定位,并且top和left的值就是刚刚页面加载时的值,这样布局就不会乱了,而且拖拽也不会影响

给我个痛快的! answered 9 years, 4 months ago

Your Answer