5

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

例如

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

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

关于如何做到这一点的任何建议?

4

3 回答 3

6

我过去曾使用过悬停意图 - 非常好,并且按照我的想法进行操作:

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

于 2009-11-03T10:58:10.430 回答
1

像这样做:

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

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

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

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

于 2009-11-03T11:04:42.163 回答
0

实际上,我还发现了这个 jquery hover 插件。http://blog.threedubmedia.com/2008/08/eventspecialhover.html

它不使用鼠标悬停等待持续时间,而是使用特定时间范围内的鼠标速度。

结果可以在此页面右侧显示的三个框中看到:http ://www.splendida.it (我目前正在研究它)。

我觉得很好看。当鼠标从第一个框快速跳转到第三个框时,即使鼠标越过第二个元素,也不会发生任何事情。

于 2009-11-03T11:56:46.483 回答