在一个大的div中有四个小的div,如果拖拽其中一个小的div进入到了另一个小的div的区域后就让两个div互换位置,并且每个div中的任何位置都是可以拖拽这个div的,并不只是拖动标题才能够拖拽这个div。
应该怎样做呢?
各位前辈们谁能给个例子呢?
谢谢了!
应该怎样做呢?
各位前辈们谁能给个例子呢?
谢谢了!
解决方案 »
- flash单击的时候调用html里的一个javascript自定义函数
- [请教]如何让手机和电脑访问同一网址进入不同页面?
- 对一些神话javascript的看法表示一声叹息
- JS取不到值,错哪了?
- 大家帮忙解释下这个json的错误
- ext tabpanel autoload的问题
- 大家好 我用parent.left.document.open();
- 设计的页面在浏览时如何屏蔽掉浏览器的菜单栏、工具栏、地址栏?
- 如何检查输入框中所输入的是不是数字?
- 网页控件定位问题,拜托了!!!
- 我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;
}
谢谢了!