3

我正在尝试做一个像淡入一样的google.com(我想淡出文本)

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
  $(document).ready(function() {
    $("html").mousemove(function () {
      $("p").fadeOut("slow");
    });
  });
</script>

使用该代码,尽管我没有移动鼠标,但我的淡出功能会自动激活。发生在所有浏览器中。有小费吗?

4

3 回答 3

5

由于该事件最初触发一次并且mousemove每次将其移动一个像素时触发,您可以忽略第一个(可能是自动的,取决于浏览器)mousemove事件以获得您想要的效果,如下所示:

$(function() {
  var moveCount = 0;
  $("html").mousemove(function () {
    if(moveCount++ === 0) return; //first run?
    $("p").fadeOut("slow");
    $(this).unbind('mousemove'); //unbind this, no need to stick around
  });
});​

你可以在这里尝试一个演示,我们所做的只是忽略事件的一次触发mousemove,然后我们执行淡入淡出并取消绑定这个处理程序,这样它就不会为以后的mousemove触发运行,只是清理。

于 2010-06-27T23:06:08.420 回答
1

似乎如果页面加载并且页面加载后鼠标出现在页面上,它将触发一个事件。尝试通过将鼠标放在地址栏上或浏览器顶部菜单上的某个位置来隐藏页面,使用 F5 刷新页面并注意未触发事件。同样,尝试使用 F5 刷新并立即右键单击页面。将鼠标悬停在页面上,但确保上下文菜单仍处于打开状态。页面加载完成后,无需移动鼠标,点击键盘上的 Escape 键,鼠标将退出上下文菜单并返回页面。鼠标没有移动,但在页面上检测到,触发了事件。

在 Windows 7 上的 Chrome 5 中进行了测试。懒得尝试其他浏览器,但我认为它是同一回事。

于 2010-07-03T23:34:43.263 回答
0

你确定没有“微动”吗?有时,光学鼠标可能会导致移动仅与灰尘或污垢一起注册。

于 2010-06-27T23:07:52.060 回答