0

有人告诉我,去完成一个UI效果应该是什么样子的:拖动元素时,如何获取要替换的元素的位置?

第一:

  • 两三列在页面上,很多ELEM(例如:DIV)在每个 列中,
  • 并且列中的所有这些元素应该可拖动,并且
    与此同时该列应自动对所有元素进行排序。

第二:

    拖动元件形式的一列到另一时
  • ,拖动 元件应我的光标点移动到该柱,
  • 并且当液滴此ELEM,应该有这样一种效果,即在被放弃的元素周围的元素之一将会将'位置'动画到 原始拖动元素的位置。

enableDrag功能,我发现是这样的:

function enableDragging(ele) { 

    var dragging = dragging || false, 
     x, y, Ox, Oy, 
     current; 
     enableDragging.z = enableDragging.z || 1; 
    ele.onmousedown = function(ev) { 
     current = ev.target; 
     current.style.position = "absolute"; 
     dragging = true; 
     x = ev.clientX; 
     y = ev.clientY; 
     Ox = current.offsetLeft; 
     Oy = current.offsetTop; 
     current.style.zIndex = ++enableDragging.z; 
     console.log(dragging); 

     window.onmousemove = function(ev) { 
      if (dragging == true) { 
       var Sx = ev.clientX - x + Ox, 
        Sy = ev.clientY - y + Oy; 
       current.style.top = Sy + "px"; 
       current.style.left = Sx + "px"; 
       return false; 
      } 
     }; 
     window.onmouseup = function(ev) { 
      dragging && (dragging = false); 
     } 
    }; 
} 

,但我应该怎么动了,其实我也没想到得到ELEM的位置会是怎样取代了原始拖ELEM是...

主要是,我想所有这个效果写在原始的Javascript,但jQuery是好的!

我是JS新手,这是我应该弄清楚的最重要的项目!

任何人都可以帮助我吗?

回答

2

您是否尝试过jQuery UI“可排序”小部件?这听起来像是你所需要的大部分。

特别参见“connected list”演示。

+0

好的,我已检查过,这很好。但我怎么能让一个elem可拖动和排序在原始的JavaScript?我已经搜索这个谷歌,结果几乎不符合我的目的。 – Lien 2012-07-17 03:10:11

+0

@strangeline它是_hard_做您在纯Javascript中所要求的 - 这就是为什么有完整的jQuery UI模块致力于实现它。 – Alnitak 2012-07-17 06:56:38