首页 > 解决方案 > CdkDrag 移动得太快了

问题描述

我面临一些奇怪的 CdkDrag 行为,当可拖动元素比容器宽时,即使拖动几个像素,也会立即拖动到可拖动元素的末尾。

CdkDrag 行为

知道如何使它顺利拖动,因为它适用于红色方块?

标签: angularangular-cdk-drag-drop

解决方案


我想您有两个功能可以移动元素(单击)和(拖动)。你可以有一个变量“onDrag”,所以你可以有一些像

<div class="example-box" cdkDrag
  (cdkDragStarted)="onDrag=true"
  (cdkDragEnded)="dragEnded()"
  (click)="!onDrag && click()"
  >
  Drag me around
</div>

在拖动开始时,我们将变量设置为 true,在 dragEnded 中,我们将其包含在 setTimeOut 中,将变量设置为 false。单击首先检查变量

  onDrag:boolean=false

  click()
  {
    console.log("click")
  }
  dragEnded()
  {
    setTimeout(()=>{
       this.onDrag=false
    })
  }

推荐阅读