【问题标题】:stop executing javascript till full cycle停止执行 javascript 直到完整周期
【发布时间】:2014-03-23 12:01:16
【问题描述】:

当我悬停另一个 div 时,我制作了这个脚本来淡出和淡入 (fadeTo) 一个 div,它几乎可以完美运行,但是当我快速进出 div 时,脚本会一直循环,直到它达到我悬停它的时间。

是否可以停止(超时?)淡出/淡入效果直到循环完成?因此,它会停止重复并快速进出,但是当循环完成时脚本会再次运行

jsFiddle:(快速在红色部分进出数次,您会注意到文字一直在显示)
http://jsfiddle.net/v69Jk/

$(function () {
$('.one').hover(function () {
    $('.show').fadeTo(600, 0);
},

function () {
    $('.show').fadeTo(600, 1);
});
});

【问题讨论】:

标签: javascript jquery fade


【解决方案1】:

解决方案一:取消之前的动画:

$(function () {
    $('.one').hover(function () {
        $('.show').stop().fadeTo(600, 0);
    },

    function () {
        $('.show').stop().fadeTo(600, 1);
    });
});

Demo

解决方案 2:在动画尚未完成时停止事件(如您所愿,但由于 hover 函数,这可能无法正常工作)

$(function () {
    $('.one').hover(function () {
        if (!$('.show').is(':animated')) {
            $('.show').fadeTo(600, 0);
        }
    },

    function () {
        if (!$('.show').is(':animated')) {
            $('.show').fadeTo(600, 1);
        }
    });
});

Demo

【讨论】:

  • 解决方案 1 成功了!为什么我没有想出这个……谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多