拖放CDK:在开始列表中继续显示拖动的元素

时间:2019-04-19 09:54:57

标签: javascript angular drag-and-drop

我正在使用cdk拖放,因为我需要它来创建工作的POC。 我从文档网站上开始使用此code。 我看到,每当我将一个元素拖到其列表之外时,该元素就会被隐藏,直到将其放入同一列表或另一个列表中为止。

所以请告诉我我是否错了,但是似乎拖动的元素不是列表项的副本,而是元素本身。

最后,我希望列表在拖动其中一个元素时不更改其布局。

长话短说:

当前行为 enter image description here

预期行为 enter image description here

在cdk文档中我什么都没找到。

3 个答案:

答案 0 :(得分:1)

在您的cdk-drag-drop-connected-sorting-example.css中更改

更改

.cdk-drag-placeholder {
  opacity: 0;
}

放入:(或将其删除)

.cdk-drag-placeholder {
  /* opacity: 0; */
}

它消失的原因是占位符的css样式。


如果要禁用排序。看看HERE!

答案 1 :(得分:0)

也需要这个,但找不到库支持的东西。

我的解决方案是隐藏整个原始 cdkDropList 并用一个相似的替换它。

它不会对所有人都有效,对我来说它有效,因为每个 cdkDrag 都在它自己的 cdkDropList 中。

答案 2 :(得分:0)

不知道您是否仍然需要一个解决方案,但是有 2 个事件可以帮助您为您的问题创建一个解决方案。

cdkDropListExited / cdkDropListEntered CdkDragEnter / CdkDragExit

当拖动的元素被移除(这是您想要避免的)或当它进入容器时会触发提到的事件。

!NOTE 当您移动到目标容器上时会触发这些事件(但您仍然按下单击按钮)=> 您仍在拖动

我的解决方案是添加一个自定义占位符 div,当这些事件被触发时我会隐藏/显示它。

希望这对你来说足够清楚 和平