【问题标题】:When dragging an element, how can I get the location of the element to replace?拖动元素时,如何获取要替换的元素的位置?
【发布时间】: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


    【解决方案1】:

    您是否尝试过 jQuery UI “可排序”小部件?听起来它可以满足您的大部分需求。

    请特别参阅“connected list”演示。

    【讨论】:

    • 好的,我已经检查过了,这很棒。但是我怎样才能使元素在原始 javascript 中可拖动和排序?我已经用谷歌搜索了这个,结果几乎不符合我的目的。
    • @strangeline 在纯 Javascript 中完成您所要求的事情是困难 - 这就是为什么有整个 jQuery UI 模块专门用于实现它的原因。
    猜你喜欢
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多