javascript - 拖放算法 'n'

标签 javascript

page描述了拖放算法。

只看第一段代码(本文不断改进),它说我们在 document.addEventListener('mousemove', onMouseMove);document 中使用很重要.

这是因为如果我们要使用 ball,我们有可能将光标移动得如此之快,以至于光标可能会在 mousemove 之前离开球的盒模型有机会再次执行吗?我们不会将鼠标移到 ball 上,所以 mousemove 不会重新触发。

最佳答案

Is this because if we were to use ball, there's a chance we might move the cursor so fast the cursor might leave the box-model of the ball before mousemove would have a chance to execute again?

是的。

如果您向上拖动一个对象,而您的拖动点也是该对象的顶行像素,则会发生这种情况。

如果您从其中心拖动一个较大的对象并且您的计算机具有高轮询率显示刷新率的鼠标,则不太可能发生这种情况并且浏览器能够快速处理操作系统提供的输入事件 - 因此如果您是使用高端游戏机(配备 1000Hz USB 鼠标和 120Hz+ 显示器)的前端开发人员,可能与在 30Hz 显示器上使用 100Hz 鼠标的人相比,没有注意到这个问题(这是一回事:许多人通过 HDMI 1.x 运行 4K 显示器,而 HDMI 1.x 只能在 30Hz 下运行 4K)。

另一种情况是当用户使用绝对模式(也称为 Wacom 的“笔模式”)而不是相对模式的绝对指点设备时,例如触摸屏或绘图板(也称为 Wacom 的“鼠标模式”)- 如果用户仅通过用手指点击目标位置(或通过将手写笔垂直移动到检测区域之外)将对象“拖动”到屏幕上的其他位置,则只会出现1 个 mousemove 事件,它根本不会被 ball 捕获。

关于javascript - 拖放算法 'n',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64018823/

相关文章:

javascript - 使用 jinja2 将 Python 字符串转为 html javascript block

php - 如何制作 Firefox,不缓存我的网站

javascript - 通知 polymer 新功能结果

c# - 将 json 中的图像的 base64 字节数组传递给 webApi

javascript - 在移动设备上无限滚动

javascript - 中止 rethinkdb 更改源

javascript - 我如何概括生成模态图像以处理多个图像的代码

java - 根据保存在数据库中的设置呈现动态用户界面

javascript - 动态添加的表行不删除

javascript - 在我的 SPA 中成功验证后,Googles recaptcha 给出 "Uncaught SecurityError"