我想激活一个 .mouseover 仅当鼠标放在“触发”元素上预定的持续时间(例如,500 毫秒)。

例如。

$('.featured').mouseover(function () {
      $('.feat-txt').fadeOut("fast");
    });

仅当鼠标位于 .featured 元素上至少 500 毫秒时,该函数才能启动并且 .feat-txt 可以淡出。简单地将鼠标悬停在该元素上(只需快速移动)不会激活该功能。

关于如何做到这一点有什么建议吗?

有帮助吗?

解决方案

我已经使用了悬停意图在过去 - 非常好,做什么你我想后:

http://cherne.net/brian/resources/jquery.hoverIntent.html

其他提示

像这样做:

  • 拦截该元素上的 onmouseover 事件。在回调函数中什么都不做;而是以您想要的延迟调用另一个函数,例如在原型中,您可以使用 functionName.delay(500) 执行此操作

  • 在第二个函数中,使用 jQuery 提供的任何内容检查鼠标是否仍在元素上,以获取鼠标坐标和元素坐标。如果鼠标仍然在那里,请执行您想做的任何操作。

这对于长时间的延迟不起作用,因为用户可以将鼠标移出并移回元素内部,并且 functionName 仍然会触发。

如果你不介意我这么说的话,这是一个非常糟糕的主意。

事实上,我也发现这个jQuery悬停插件。 http://blog.threedubmedia.com/2008/08/eventspecialhover.html

它不使用鼠标悬停等待持续时间,但使用鼠标速度在特定的时间帧。

结果可以对当前页的右侧显示的三个盒中可以看出: HTTP://www.splendida 。它(我目前正在就可以了)。

它看起来对我很好。当鼠标从第一快速跳转到第三箱,没有任何反应,即使鼠标经过第二元件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top