在一个大的div中有四个小的div,如果拖拽其中一个小的div进入到了另一个小的div的区域后就让两个div互换位置,并且每个div中的任何位置都是可以拖拽这个div的,并不只是拖动标题才能够拖拽这个div。
应该怎样做呢?
各位前辈们谁能给个例子呢?
谢谢了!

解决方案 »

  1.   

    以前项目中做过类似的,这个要求对javascript dom有一定的了解才行
    我说说大致的思路。。你可以参考下:简单来说,将最大的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;
        }
      

  2.   

    没有,那个模块不是我负责的,我只是大概了解。。这个你要对js 的dom操作比较熟,而且对html元素的定位熟悉才行。。
      

  3.   

    我是js的初学者,对js的dom了解甚微。所以希望前辈们能够提供一个比较完整的例子!
    谢谢了!
      

  4.   

    相同z-index情况下,dom文档树后面的div会在前面的div之上