【问题标题】:Dragula: how to make the object follow the cursorDragula:如何使对象跟随光标
【发布时间】:2015-11-19 17:21:33
【问题描述】:

我正在使用 Dragula,我正在尝试使我拖动的对象跟随我的光标。我该怎么做呢。

编辑:也许值得注意的是这里的 html 是什么样的:

<div>
  <paper-menu id="listL">
     <template id="left" is="dom-repeat" items="{{leftList}}">
       <div>
         <custom-polymer-element></custom-polymer-element>
       </div>
     </template>
  <paper-menu>
<div>

我通过调用 Polymer 内部的 ready 函数来初始化 Dragula:

Polymer({
  is:"wapper-element",
  ready: function() {
    var drake = dragula([this.$.listL]), {
      revertOnSpill: true,
    });
});

EDIT2:
这是我尝试拖动某些东西时看到的图像:

左下角的内容是我每次拖动图像时看到的内容,并且无论我将元素拖动到何处,它都会停留在那里。那里没有任何元素或任何东西,文本只是出现在那里。

EDIT3:

解决方案

问题的原因是我没有正确导入dragula.css。如果其他人遇到此问题,我建议确保您已导入 dragula.css 并正确执行。

【问题讨论】:

  • 默认情况下,您拖动的内容会跟随您的光标。我不确定你在问什么?
  • 每当我拖动一个对象时,我看到该对象复制到 mirrorContainer 中,但该对象没有跟随我的光标。
  • 好的,您希望实际元素移动,而不是它创建的镜像人?
  • 是的,没错。
  • 你能展示你初始化dragula的配置吗?

标签: javascript dragula


【解决方案1】:

我认为你做不到。使用简单配置可以做的最好的事情是使用:

removeOnSpill: true

当元素离开它所在的容器时,这将删除从容器中拖动的元素。

小提琴:http://jsfiddle.net/AtheistP3ace/e95nqyf9/1/

我什至不确定您是否可以在该元素上开始拖动时使用设置display: none 之类的事件来伪造它,因为镜像是一个克隆,因此您应用到其中的任何样式都会镜像到另一个上。

小提琴:http://jsfiddle.net/AtheistP3ace/e95nqyf9/

基本上在一天结束时,光标后面的内容在某些方面是原始元素,只是它的克隆。

【讨论】:

  • 我的问题是,当我移动光标时,我什至看不到任何被拖动的东西,我所看到的只是当我将鼠标悬停在另一个有效容器上时出现一个幽灵元素,然后是图像的另一个副本mirrorContainer 镜像,默认设置为 document.body。
  • @Ulsting 如果您可以创建一个小提琴并重现该问题,我可以提供帮助,但正如您在第一个小提琴中看到的那样,我的回答是您可以清楚地看到我正在拖动的元素。
  • @Ulsting 我以前也见过这种情况,当时不包括 Dragula 的 CSS。你确定它被正确包含了吗?
  • 我从同一个 dist 文件夹中获取它,我从中获取 dragula.js
  • 好的。好吧,如果您可以在 jsfiddle 中重现此问题,我可以提供帮助,但此时我看不到您所看到的内容。
猜你喜欢
  • 2021-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-27
相关资源
最近更新 更多