用aurealia-interactjs克隆

时间:2016-12-16 00:45:06

标签: aurelia interact.js

我试图使用与aurelia的interactjs来建立一个系统来拖动克隆拖动的对象,而不是移动它。

根据interactjs FAQ(http://interactjs.io/docs/faq/#clone-target-draggable),可以使用interactjs中的移动指针事件来完成。但是,aurelia-interactjs似乎没有公开interactjs指针事件。

除了interactjs FAQ中描述的方法之外,还有其他方法可以实现这一目标吗?

1 个答案:

答案 0 :(得分:2)

好的,我设法回答了我自己的问题。还有另一种创建克隆的方法,由Magnum79在此处概述:https://github.com/taye/interact.js/issues/156

使用它而不是交互move(),可以避免在aurelia-interactjs中支持指针事件。对定位和转换为aurelia的略微修改产生:

dragStart(event) {
    event = event.detail;
    if (!event.target.dragOrigin) {
        var clone = event.target.cloneNode(true);
        clone.dragOrigin = event.target;
        event.interaction.element = clone;
        event.interaction.dragging = false;
        var dragTarget = clone;
        document.body.appendChild(clone);
        var r = event.target.getBoundingClientRect();
        clone.style.position = 'absolute';
        clone.style.left = r.left + 'px';
        clone.style.top = r.top + 'px';
    } else {
        dragTarget = event.target;
    }
}

这就像魅力一样。