javascript - 如何使用纯 javascript 获得 10 毫秒的旧鼠标位置?

标签 javascript html css delay setinterval

我正在制作一个 slider ,向左滑动时向左移动,向右滑动时向右移动。她是我到现在为止的成就https://jsfiddle.net/6ze720f7/ .虽然我现在可以设置 position left: 0 显示 left 和 position left: 446 px 显示 Right 。

负责方向的代码是:

center.onmousemove = function(Dmove) {
if (Dmove.pageX < oldx) {
    direction = "left"
} else if (Dmove.pageX > oldx) {
    direction = "right"
}

oldx = Dmove.pageX;
}

我担心的是 oldxDmove.pageX 之间的差异非常非常小,更准确地说是执行一些操作所花费的时间javascript 代码行。因此,如果 div 向左滑动 1 秒,但最后它被错误地向右移动了几毫秒,那么 div 将向右滑动.我认为的解决方案是使用 oldx 的 10ms 旧值。

  • 是否有可能找到比 Dmove.pageX 的当前值早 10 毫秒的值?
  • 是否可以在语句 oldx = Dmove.pageX; 之后提供 10 毫秒的同步延迟?
  • 是否可以使用 setInterval() 函数,使其每 10 秒设置一次值 oldx?这可能有点问题,因为当 mouseup事件发生。

最佳答案

我建议(如果适用于您的情况)采用另一种方法:比较滑动开始时的 x 位置(即:拖动或鼠标按下事件的开始),以及结束时或滑动期间的 x 位置滑动(即:mouseup 或 mousemove 事件)。给出:

document.body.onmousedown = function(Dmove) { 
    oldx = Dmove.pageX;
    ...
    ...
}

不要在别处修改 oldx 并与 onmousedownonmouseup 事件监听器中的“初始”值进行比较。

关于javascript - 如何使用纯 javascript 获得 10 毫秒的旧鼠标位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37251276/

相关文章:

javascript - 银纹 + 无限 Ajax 卷轴 : None Left keeps being added to page

css - SVG 旋转路径

javascript - 如何跟踪/排除 <div> 或 <class> 属性的故障?

javascript - 如何在 AngularJS 中按对象的属性进行过滤?

javascript - 将三元运算符转换为 if/else 语句

html - 使列内的元素保持在底部

javascript - html css js jquery中的颤抖动画效果

html - 如何让一个段落不在一行中显示

javascript - 使用 .each() 获取 jQuery 数组中第一个索引的值

html - 获取div显示表格有典型的分割线