Javascript JQuery e.offsetX跳转值问题

Javascript JQuery e.offsetX跳转值问题,javascript,jquery,Javascript,Jquery,我正在开发一个视频进度条,它应该具有搜索功能(拖动或单击搜索),我遇到的问题相当令人困惑,与进度条的拖动功能有关 拖动时,进度标记将从鼠标位置移动到进度条的开始位置,而不是保持其靠近鼠标位置的正确位置 这个问题的一个演示是可用的 注意:释放鼠标后,不要担心滴答器无法保持其值,我的问题与用户在进度条上拖动鼠标时滴答器返回0%有关。解决方案 在不更改标记的情况下,检查触发器(该单词是否存在?)是否为#progress(或不是#progress bar): 不过仍然存在一些错误行为,比如光标在#pr

我正在开发一个视频进度条,它应该具有搜索功能(拖动或单击搜索),我遇到的问题相当令人困惑,与进度条的拖动功能有关

拖动时,进度标记将从鼠标位置移动到进度条的开始位置,而不是保持其靠近鼠标位置的正确位置

这个问题的一个演示是可用的

注意:释放鼠标后,不要担心滴答器无法保持其值,我的问题与用户在进度条上拖动鼠标时滴答器返回0%有关。

解决方案 在不更改标记的情况下,检查触发器(该单词是否存在?)是否为
#progress
(或不是
#progress bar
):

不过仍然存在一些错误行为,比如光标在
#progress
#progress ticker
之间悬停时的差异,而且有点滞后

解释 每当鼠标在
#progress
及其子对象中移动时,就会触发事件
mousemove

它被称为事件捕获(图中):

因此,每次移动都会调用函数两次(几乎,除非移动非常慢),一次是由
#progress
调用,一次是由
#progress ticker
调用

因此,
e
的当前目标有一半时间不是您期望的元素,并且您得到了错误的
offsetX
=鼠标内部的偏移量
#progress ticker

忠告
您可以看看浏览器的滑块实现,就像在webkit中一样,使用
-webkit外观:slider horizontal
()

我刚刚有了一个拖放界面

当浏览器试图选择我正在拖动的元素时,这种情况发生在我身上

用户选择:无


在容器上为我修复了这个问题

+1个有趣的小故障!顺便说一句,你应该直接在你的问题中添加一些代码嘿@Bigood,谢谢你的时间。这是个问题吗?@AdonisK。的确请参阅事件捕获案例(我将在回答中添加它)。
$(document).on('mousemove', '#progress', function(e) {
    if (progressTicking && (e.target.id === 'progress')) {
        ...
               | |
---------------| |-----------------
| element1     | |                |
|   -----------| |-----------     |
|   |element2  \ /          |     |
|   -------------------------     |
|        Event CAPTURING          |
-----------------------------------