Угловое cdk drag and drop - PullRequest
       27

Угловое cdk drag and drop

1 голос
/ 01 октября 2019

Может кто-нибудь мне помочь, я пытаюсь реализовать перетаскивание, мне нужно обновить элемент x и y после перетаскивания, которое я могу, но после повторного перетаскивания права это теряет положение мыши, см. код ниже

event.source.dropContainer = event.source.boundaryElementSelector;
const element = event.source.getRootElement();
const boundingClientRect = element.getBoundingClientRect();
console.log(boundingClientRect, 'element');
const parentPosition = this.getPosition(element);
console.log('x: ' + (boundingClientRect.x - parentPosition.left), 'y: ' + (boundingClientRect.y - parentPosition.top));
this.dragAndDrop.emit(
       {
         x: (boundingClientRect.x - parentPosition.left),
         y: (boundingClientRect.y - parentPosition.top),
         class: className,
        index: i,
      });
element.style.removeProperty('transform');
element.style.setProperty('transform', 'translate3d(0px, 0px, 0px)', 'important');
  }

 getPosition(el) {
    let x = 0;
    let y = 0;
    while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {
      x += el.offsetLeft - el.scrollLeft;
      y += el.offsetTop - el.scrollTop;
      el = el.offsetParent;
    }
    return { top: y, left: x };
  }
...