gpt4 book ai didi

javascript - 可拖动的 div 应避免 x 和 y 重叠

转载 作者:行者123 更新时间:2023-12-02 22:40:55 25 4
gpt4 key购买 nike

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

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; 或等样式。

enter image description here

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

最佳答案

您可以将这些行添加到您的 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`;
}

关于javascript - 可拖动的 div 应避免 x 和 y 重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58590413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com