vue-draggable使用animation导致拖拽完成后,拖拽的元素延迟后才消失
时间: 2024-02-28 09:53:03 浏览: 139
这个问题可能是由于动画效果导致的延迟。你可以尝试在拖拽结束时,立即将拖拽的元素隐藏或移除,然后再开始动画效果。
具体地,你可以在拖拽结束时,使用 `transitionend` 事件监听动画结束,然后再将元素移除或隐藏。代码示例:
```javascript
methods: {
onEnd() {
// 在拖拽结束时立即将元素隐藏
this.hideElement();
// 监听动画结束事件
this.$refs.draggable.addEventListener('transitionend', this.onTransitionEnd);
},
onTransitionEnd(event) {
// 确认是拖拽元素的动画结束
if (event.target === this.$refs.draggable) {
// 动画结束后再将元素移除或隐藏
this.removeElement();
// 移除事件监听
this.$refs.draggable.removeEventListener('transitionend', this.onTransitionEnd);
}
},
hideElement() {
this.$refs.draggable.style.opacity = 0;
},
removeElement() {
// 移除元素
this.$refs.draggable.remove();
// 或者隐藏元素
// this.$refs.draggable.style.display = 'none';
}
}
```
这样处理后,应该能够避免拖拽完成后的延迟问题。
阅读全文