【问题标题】:onDragEnd not fired when viewport is left离开视口时未触发 onDragEnd
【发布时间】:2020-05-25 09:44:17
【问题描述】:

我发现当图层被拖出视口并释放鼠标按钮时,图层仍处于拖动状态。您是否遇到过此类问题?

请看这里:https://codesandbox.io/s/llxq3yv829?file=/index.js

将红色矩形拖出视口,它仍然粘在光标上。

谢谢!

【问题讨论】:

  • 您的代码的链接现在似乎已失效。您能否编辑您的问题以包含代码?

标签: reactjs mouseevent drag konva


【解决方案1】:

为 mouseleave 设置全局事件

使用useState 在应用级别设置状态。这可以传递给依赖于鼠标在视口中的组件。然后触发一些东西来“释放”被拖动的对象。

document.addEventListener("mouseleave", (event) => {
  setState({inViewport: false})
}

在示例中,将状态传递给组件。

【讨论】:

  • 好点,乔!我试图以某种方式破解以“释放”拖动的对象,但这是真正的挑战 - 例如,乍一看,单击页面主体似乎可以通过鼠标完美地工作,但以编程方式没有任何反应。
猜你喜欢
  • 1970-01-01
  • 2011-01-01
  • 2021-10-22
  • 2015-08-04
  • 1970-01-01
  • 2017-09-27
  • 2013-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多