【问题标题】:draggable div should be avoid x and y overlap可拖动的 div 应避免 x 和 y 重叠
【发布时间】:2019-10-28 11:49:08
【问题描述】:

我遇到了与屏幕区域重叠的可拖动元素的问题。下面是代码示例:

onDrag(pageX: number, pageY: number) {
    if (this.isDragging) {
      const deltaX = pageX - this.lastPageX;
      const deltaY = pageY - this.lastPageY;

      const coords = this.element.nativeElement.getBoundingClientRect();
      this.element.nativeElement.style.left = `${coords.left + deltaX}px`;
      this.element.nativeElement.style.top = `${coords.top + deltaY}px`;

      this.lastPageX = pageX;
      this.lastPageY = pageY;
   }
}

我真正想要的是当element 到达屏幕时,它应该是样式left: 0; 或等等。

这是stack。我究竟做错了什么 ?

【问题讨论】:

    标签: javascript angular typescript angular7


    【解决方案1】:

    您可以将这些行添加到您的 onDrag 函数中:

      if(coords.left + deltaX > 0 && coords.right + deltaX < window.innerWidth) {
        this.element.nativeElement.style.left = `${coords.left + deltaX}px`;
      }
    
      if (coords.top + deltaY > 0 && coords.bottom + deltaY < window.innerHeight) {
        this.element.nativeElement.style.top = `${coords.top + deltaY}px`;
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 2012-12-18
      • 1970-01-01
      相关资源
      最近更新 更多