关于布局拖拽的策略

只讨论两种情况

 

一、大小相等元素的拖拽,类似与iphone的图标拖拽

 

其拖拽策略可以用如下规则模拟
假设拖拽元素中心点(也可以用鼠标)为p
1.拖拽元素与目标元素在同行情况下:p进入目标元素内,根据移动方向插入元素

 

2.非同行情况下:p进入目标元素margin后,p的行号大于目标元素行号,插入到目标元素前面,否则插入到元素后面
 

3.如果以上两条规则都不满足,并且p在父容器内,则插入到父容器末尾

 

关于第二条规则的说明:

由于这种布局所有元素只有一个父容器,并且这些元素在父容器内是float:left浮起来的,所以插入顺序要这样

 

二、没有元素在同一行的情况,即Portal Drag

 

实际上上面的拖拽规则2,3就可以适用这个

 

只不过上面的情况,只有一个父容器,而Portal Drag有若干个父容器(根据列数决定)

 

 

其实还有其它很多策略,比如点在元素内,元素交与元素,点距离最近的元素,等。。。

 

 

关于如何封装实现,以后在写^^
posted @ 2011-07-06 11:54  越兔  阅读(615)  评论(0编辑  收藏  举报