【问题标题】:Stop jQuery hover effect when element is not hovered anymore当元素不再悬停时停止 jQuery 悬停效果
【发布时间】:2014-05-11 14:39:19
【问题描述】:

我的脚本:

$(window).load(function(){
    $(".inner").hover( function (e) {
        $(this).find(".info").stop().fadeIn(410);
    }, function() {
        $(this).find(".info").stop().fadeOut(410);
    });
});

当我将鼠标悬停在 div .inner 上时,它会播放动画,但当我快速将鼠标移出并再次移入时,它会停在我鼠标移出的地方,以使其更容易。

http://www.sakesalverda.nl/projects/ 并将鼠标悬停在网站图像上,然后快速将鼠标移出并再次悬停该网站的图像,您会看到它不会完全制作动画

【问题讨论】:

    标签: javascript jquery html hover


    【解决方案1】:

    肯定有一个 jQuery 解决方案,但我会为此使用 CSS,它更容易,而且在大多数情况下性能更好:

    .inner .info {
        opacity: 0;
        -webkit-transition: opacity .42s;
        transition: opacity .4s;
    }
    .inner:hover .info {
        opacity: 1;
    }
    

    适用于所有major browsers,但IE8 would need a fallback。一个缺点是,IE8 和 IE9 不会有褪色效果,但在我看来,这是我们可以承受的死亡,因为这些浏览器现在只有 5%。显示/隐藏也可以,只是不如现代浏览器那么好。

    【讨论】:

    • 我已经尝试过了,我使用 jQuery 的原因是,通过 css 转换,文本会变丑:它从 0 的半粗体变为粗体或类似的东西,使用 jQuery我没有这个问题
    • 您使用 jQuery 1.4.4 有什么原因吗? 1.11好像没问题:jsfiddle.net/59SDK
    • 感谢问题现已解决。我使用它是因为我不知道我必须包含哪个 jQuery,你能解释一下我如何知道我必须包含哪个 jQuery
    • 只需添加:$(this).find(".info").stop().fadeTo(410, 1);$(this).find(".info").stop().fadeTo(410, 0); 即使使用您的 jQuery 版本也可以正常工作。
    • 正如 Eadel 指出的那样,当您设置完整的变量时,它将适用于您的 jQuery 版本:jquery.com/fadein/。我仍然会一直尝试使用最新的 jQuery 版本,现在是 1.11.1。 (或者2.1.1,如果你不需要支持IE8)
    猜你喜欢
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 2017-05-31
    • 2014-09-22
    • 2011-06-02
    • 1970-01-01
    相关资源
    最近更新 更多