javascript - 如何在 jQuery 中的两个 HTML 片段之间淡入淡出

标签 javascript jquery for-loop settimeout

http://jsfiddle.net/SVtJV/16/

$( document ).ready(function() {
    for (var i=0; i<3; i++) {
        setTimeout(function() {
            $("#footer-address").fadeOut(400);
        }, 2000);
        setTimeout(function() {
            $("#footer-address").fadeIn(400).html("<strong>Our Place</strong>  New Address Location");
        }, 2400);
        i++;
    }
});

我试图让一段带有 setTimeout 函数的代码块通过 for 循环运行 3 到 4 次。从逻辑上讲,我可以看到 for 循环中的代码不想重复自身,可能是因为 setTimeout 时间值已经过去了。

有没有办法在循环之前重置时间值?或者有更好的方法来执行最终目标吗?

最佳答案

每个 for 循环不会等待超时完成,整个 for 循环可能会在 20 毫秒内完成:D 如果你想重复淡入淡出,你必须使用回调来做一些小功能。

    $( document ).ready(function() {
    var repeats = 4,
        times = 0,
        fade = function() {
            if (times >= repeats) return false;
            times++;
            $('#footer-address').fadeTo(400, 0, function() {
                $('#footer-address').html('text 1');
                $('#footer-address').fadeTo(400, 1, function() {
                    setTimeout(fade, 1000);
                });
            }); 
        };

    setTimeout(fade, 1000);
});

我不太明白你想用 .html() 做什么。难道要反复改变吗?

已编辑。

关于javascript - 如何在 jQuery 中的两个 HTML 片段之间淡入淡出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15095040/

相关文章:

javascript - 按钮上的页面滚动错误单击jQuery

javascript - 使用 require.js 扩展 jquery(多个扩展)?

php - 我的循环显示结果值时遇到问题

python 写错误

r - 使用R作为游戏模拟器

javascript - Redux:将 `reducres` 与非平坦状态结合起来,避免创建大量 reducer

javascript - 如何在 PHP(Laravel) 中生成 Cloudinary 身份验证签名

javascript - 无法将嵌套对象转换为对象数组,反之亦然

javascript - 计算换行符数量的函数在 $(window).on ('resize' ) 和 $(document).ready 上的作用不同

javascript - 根据 Id 使用循环设置类