javascript - 当我们有多个 setTimeouts 时,javascript 事件队列如何工作

标签 javascript jquery

我正在考虑在 fadeInfadeOutsetTimeout 的帮助下制作轮播。这是一个jsfiddle .

我真的对 javascript 事件队列感到困惑。因为,在上面的示例中,我使用了两个 div,并尝试以固定的时间间隔fadeInfadeOut 它们。但是,这种情况并不是定期发生的。第二个 div 比第一个 div 消失得更快。

是否可以让它们有规律的间隔?

最佳答案

我不知道该对事件队列说什么,但你可以只用一个 bool 值来修复你的代码。

var isTopTurn = true; //boolean to remember which one should fade
$(document).ready(function(){
    setInterval(fadeHelper,3000);
});


function fade(top, bottom) {
    top.fadeOut(2000);
    bottom.fadeIn(2000);
}


function fadeHelper() {
    if (isTopTurn) {
        isTopTurn = false;
        fade($('.top'), $('.bottom'));

    } else {
        fade($('.bottom'), $('.top'));
        isTopTurn = true;
    }
}

jsfiddle

关于javascript - 当我们有多个 setTimeouts 时,javascript 事件队列如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31935665/

相关文章:

javascript - 在javascript中选择性地填充数组

javascript - 哪个先触发,是更早创建的 setTimeout() 还是更早安排的?

javascript - 代码运行成功但在浏览器中未显示输出

javascript - 如何创建 Div ID 数组

javascript - 带有图标的基础可切换侧边栏,如 Wordpress 仪表板

javascript - 无法从由 Jquery 加载到另一个 html 的 HTML 中定位类

jquery - 主干js : How to get control in row item?

javascript - 在 Javascript 中转换对象格式

javascript - Jquery - 单击时缩小 DIV

javascript - 我如何链接多个 promise ?