【发布时间】:2012-07-16 10:36:29
【问题描述】:
我被告知要做一个 UI 效果应该是这样的:
第一:
- 页面上有两三列,每一列都有很多elem(eg:div) 列,
- 列内的所有这些元素都应该是可拖动的,并且
同时该列应自动对所有元素进行排序。
秒:
- 将元素从一列拖动到另一列时,拖动的 元素应该移动到我的光标指向的列,
- 当放下这个元素时,应该有一个效果 掉落的元素周围的元素将动画“位置”到 原始拖动元素所在的位置。
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);
}
};
}
但是我应该如何继续,我实际上不知道要获取元素的位置,将替换原始拖动元素的位置......
主要是,我想用原始的 Javascript 编写所有这些效果,但 jQuery 也很好!
我是 JS 新手,这是我应该弄清楚的最大项目!
谁能帮我解决这个问题?
【问题讨论】:
标签: javascript jquery drag-and-drop draggable jquery-ui-sortable