gpt4 book ai didi

javascript - JQuery e.offsetX 跳跃值问题

转载 作者:行者123 更新时间:2023-11-29 14:52:43 27 4
gpt4 key购买 nike

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

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

问题的演示可用 here .

注意:不要担心松开鼠标后自动收报机不保持其值,我的问题是当用户将鼠标拖到进度上时自动收录机回到 0%栏。

最佳答案

解决方案

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

$(document).on('mousemove', '#progress', function(e) {
if (progressTicking && (e.target.id === 'progress')) {
...

Here's a working demo of it.

虽然仍然存在一些错误行为,例如光标在 #progress#progress-ticker 之间悬停时的差异,并且有点滞后。

解释

只要鼠标在 #progress 及其子项中移动,您的事件 mousemove 就会被触发。

它被称为事件捕获(图表来自QuirksMode.org):

               | |
---------------| |-----------------
| element1 | | |
| -----------| |----------- |
| |element2 \ / | |
| ------------------------- |
| Event CAPTURING |
-----------------------------------

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

所以,e 的当前目标是一半时间,而不是您期望的元素,并且您得到了错误的 offsetX =鼠标#progress-ticker

建议

您可以使用 -webkit-appearance: slider-horizo​​ntal ( here's a list of values for webkit ) 查看浏览器对 slider 的实现,例如在 webkit 中

关于javascript - JQuery e.offsetX 跳跃值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22937757/

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