在一个大的div中有四个小的div,如果拖拽其中一个小的div进入到了另一个小的div的区域后就让两个div互换位置,并且每个div中的任何位置都是可以拖拽这个div的,并不只是拖动标题才能够拖拽这个div。
应该怎样做呢?
各位前辈们谁能给个例子呢?
谢谢了!
应该怎样做呢?
各位前辈们谁能给个例子呢?
谢谢了!
解决方案 »
- Zimbra的界面修改问题,小弟我很纠结
- 如何使鼠标指针悬停在超链接上时,指针变为某个特效flash效果?
- constructor使用的问题
- 倒计时关闭提示框
- kendo ui 能否实现frozen Column?
- 超级简单!(我可真笨!)怎样控制一个iframe里的页面刷新?
- 请教一个利用javascript保存信息的问题!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 关于一次修改多条记录的问题,在线等。请指教·!
- 如何获取javascript编写的在线播放.rm歌曲的数据流?
- 大虾请进
- 我js脚本放在页面执行没问题但是单独提出js文件之后引用就报错为什么?
- js cookie得到多个cookie中的单个cookie对应的值
我说说大致的思路。。你可以参考下:简单来说,将最大的div的position设为relative;
然后将四个小DIV的position设为absolute,这样四个小DIV的Top,Left的值就为相对父Div的距离的
然后就是单击移动四个小DIV(用JS事件处理),判断移动DIV的位置,然后动态用js DOM操作DIV,将其
移动到相关位置,当你拖动DIV时,要在原DIV位置上留个占位符,用特殊样式表明移动的原位置,
移动操作完后将占位符移除就行了。。
主要是计算定位的问题:
发一段计算定位的代码,你参考下:
node.offsetParent 记得要判断offsetParent 是否为最大的DIV
function Top(node) {
var top = node.offsetTop;
while (node.offsetParent) {
node = node.offsetParent;
top += node.offsetTop;
}
return top;
}
function Left(node) {
var left = node.offsetLeft;
while (node.offsetParent) {
node = node.offsetParent;
left += node.offsetLeft;
}
return left;
}
谢谢了!