【问题标题】:Javascript/jQuery - trigger action only when mouse movesJavascript/jQuery - 仅在鼠标移动时触发动作
【发布时间】:2014-09-20 16:37:48
【问题描述】:

当用户稍微移动鼠标时,我只需要触发一次动作,并且在页面的哪个部分并不重要。如果鼠标不移动,则不应触发动作。当鼠标移动时(可能是页面完全加载后 3 分钟),那么该动作应该只发生一次。

这就是我现在拥有的:

  $(document).one('mousemove', function() {
    $('.front #main .block-content').animate({opacity : 0.3}, 200);
  });

问题是页面完全加载后,无论我用鼠标做什么(停止或移动)都会触发动画。

我希望我已经足够清楚,但如果这还不够,我可以尝试进一步澄清。有没有我想要实现的解决方案?

谢谢。

【问题讨论】:

  • 问题可能是事件排队
  • 给你 :) 同样的问题(和解决方案)在这里:stackoverflow.com/questions/3129148/…
  • @ArunPJohny 页面加载时似乎触发了 mousemove 事件?
  • 谢谢你,达伦,你指给我的解决方案解决了这个问题。但我不得不适应它。我已经做了一个 console.log 来计算在页面加载时触发 mousemove 的次数,它达到了 3 的计数。我在 5 上设置了一个阈值以开始执行鼠标移动操作。也许有更好的解决方案,但这是有效的。如果你想发帖作为答案,我会接受。
  • @MarcosBuarque - 我不会费心给出答案 - 我只会复制/粘贴:) - 也许在你的答案中添加一个 Edit 并带有解决方案的链接?

标签: javascript jquery


【解决方案1】:

使用

$(document).mousemove(function(){
 $('.front #main .block-content').animate({opacity : 0.3}, 200);
})

改为

【讨论】:

  • 谢谢,masoud,但这并不能解决问题。 Darren 在我的帖子下发表了评论,专门指出了解决我的问题的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-19
  • 1970-01-01
  • 2014-09-18
  • 1970-01-01
  • 2011-09-02
  • 2011-07-27
  • 1970-01-01
相关资源
最近更新 更多