【问题标题】:mouseenter/mouseleave in FirefoxFirefox 中的 mouseenter/mouseleave
【发布时间】:2013-06-04 10:24:19
【问题描述】:

我有一个脚本,当你悬停(mouseenter/mouseleave)时,它使用 jQuery 的缓动插件来使链接easeOutBounce。我在 jQuery 上也有 css 样式,因为我的图像是使用 css sprite 创建的,因此根据悬停状态,X 和 Y 位置会发生变化。这在 Firefox 以外的浏览器中运行良好。

我想知道是否有人以前遇到过这个问题以及他们可能找到的解决方案?我从研究中确定这与 mouseenter/mouseleave 方法有关。

下面是代码如何用于链接的示例:

(示例显示重命名的类和 div)

$(function() {
    $('#navigation').on('mouseenter', '#link-1:not(.selected)', function() {
        $(this).stop().animate({
            backgroundPositionX:0,
            backgroundPositionY:0
        }, 1000, 'easeOutBounce');
    }).on('mouseleave', '#link-1:not(.selected)', function() {
        $(this).stop().animate({
            backgroundPositionX:0,
            backgroundPositionY:-156
        }, 700, 'easeOutBack');
   });
});

对页面上的其他链接重复此操作。

/* 编辑为 FF 建议 - 不喜欢背景元素,但在这样编辑时会稍微工作,但背景 pos 的悬停状态需要为 00 并且不喜欢 -84 并且悬停将精灵带到侧而不倒!

$(function() {
    $('#navigation #link-1:not(.selected)').hover(
function () {
       $(this).stop().animate({
          'background-position':0
        }, 1000, 'easeOutBounce');
},
function () {
      $(this).stop().animate({
            'background-position': 0 -156
        }, 700, 'easeOutBack');
    }
    );
});

【问题讨论】:

  • > 那么,在 FF 中会发生什么?
  • 创建一个演示问题的 JSFIddle。
  • 我现在来整理一下。在FF中它只是没有任何动画或任何东西,但链接仍然有效。
  • 我目前无法使用当前代码整理链接,因为它使用 codeigniter/php,所以我将模拟一个示例。

标签: jquery firefox mouseenter mouseleave


【解决方案1】:

我不明白这个问题。 如果问题是 mouseleave 没有触发,我通过使用 hover() 函数而不是 mouseenter/mouseleave 来解决它。

你能试试这个代码吗?

$(function() {
    $('#navigation #link-1:not(.selected)').hover(
function () {
       $(this).stop().animate({
            backgroundPositionX:0,
            backgroundPositionY:0
        }, 1000, 'easeOutBounce');
},
function () {
      $(this).stop().animate({
            backgroundPositionX:0,
            backgroundPositionY:-156
        }, 700, 'easeOutBack');
}
);
});

如果问题是动画有时“跳跃”,将停止函数改为stop(true, true)

【讨论】:

  • 您好,查看了您的代码,在 FF 中仍然没有运气,很奇怪!
  • 将 backgroundPositionX & Y 替换为 'background-position': 0 0 和 'background-position': 0 -156px
  • 尝试更改背景位置,我在 FF 中移动,但脚本中有语法错误(它不喜欢 00 和 px),当它移动时它会移动到一边和休息,我想它快到了!我将添加我在上面解释的示例中使用的内容的副本。
  • 如果仍有问题,请将值放入字符串中:'0 0' 和 '0 -156px'。希望对你有帮助
猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 2019-04-26
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多