Угловой cdk Перетаскивание и падение Получите положение элемента после перетаскивания - PullRequest
0 голосов
/ 16 октября 2019

после очень долгого страдания, пытаясь найти решение этой проблемы, я нашел способ сделать это. Я использовал событие dragMoved, чтобы удалить их свойство transform, и добавил мое, используя расстояние события. см. ниже

  dragMoved(event) {
    const element = event.source.getRootElement();
    console.log(event.distance, 'cdk');
    element.style.removeProperty('transform');
    element.style.transform = `translate3d(${event.distance.x}px,${event.distance.y}px,0)`;
  }

после события onDragEnded я получил свойства x и y из преобразования и добавил их к моим текущим x и y, чтобы получить позицию exect, а затем удалил преобразование после, см. ниже

 onDragEnded(event, className, i?) {
const element = event.source.getRootElement();
const transform = element.style.getPropertyValue('transform');
const x = transform.split('(')[1].split(')')[0].split(',')[0];
const y = transform.split('(')[1].split(')')[0].split(',')[1];

this.offers.controls[e.index].get('top').setValue(y + top + 'px');
this.offers.controls[e.index].get('left').setValue(x + left + 'px');
element.style.transform = 'translate3d(0,0,0)';
}
...