【问题标题】:Why won't this change from red to white after 0.5 seconds?为什么 0.5 秒后不会从红色变为白色?
【发布时间】:2023-03-30 20:04:01
【问题描述】:

我正在尝试用 JavaScript 制作一个记忆游戏,目前做得很好。我试图在 0.5 秒内从红色变为白色,这是我目前拥有的代码。

$("#go").click(function () {
    $("#red").css("background-color", "red", function () {
        $("#red").css("background-color", "white").delay(0050);
    });
});

有人告诉我做 setTimeOut 但我还不明白,因为我是 JavaScript 的初学者。请帮助我,谢谢!

【问题讨论】:

  • 0050 == 50 毫秒
  • 在链接中阅读有关 setTimeout 的更多信息,这个简单的概念可以帮助您满足您的要求 - developer.mozilla.org/en-US/docs/Web/API/…
  • @MisterJojo 更像40(它是八进制,因为有前导零)
  • 这能回答你的问题吗? jQuery delay not working
  • @blex,你说得对,它是 40。我更喜欢这样写的八进制值0o50——但我不认为 PO 是故意这样做的

标签: javascript jquery


【解决方案1】:

我想到了这样的解决方案:

$("#go").click(function () {
  $("#red").css("background-color", "red").delay(500).queue(function (next) { 
    $(this).css("background-color", "white");next(); 
  });
});
#red{
  display:block;
  width:50px;
  height:50px;
  border:1px solid #000;
}
#go {
  height:30px;
  margin-bottom:20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<button id="go">Go</button>
<div id="red"></div>

【讨论】:

    【解决方案2】:

    如果 JS 没有使用严格模式,这应该设置为 0.5 秒。我建议测试以下两个。

    $("#go").click(function () {
    $("#red").css("background-color", "red", function () {
        $("#red").css("background-color", "white").delay(0764);
    });
    

    });

    如果 js 使用严格模式,这将是 0.5s

    $("#go").click(function () {
    $("#red").css("background-color", "red", function () {
        $("#red").css("background-color", "white").delay(0500);
    });
    

    });

    正如人们在 cmets 中提到的,0050 在严格模式下是 5 毫秒。

    如果不是严格模式0.5s = 0764

    【讨论】:

    • 不,005040 毫秒。前导零使 JS 将其视为八进制而不是十进制。所以0500 实际上是 320 毫秒。试试console.log(0500)
    • OP 所指的问题是对 CSS 的更改没有延迟(它不会等待 0050 什么),它是即时的。他们没有走到这一步。
    • @blex - 我现在明白了,我已经更新了我的答案,感谢您的提醒!
    • 你把事情复杂化了!只需使用十进制:500。而已。不需要奇怪的解决方法。我只是指出了前导零的副作用。只是不要添加一个
    • 不行,jQuery延迟需要队列方法
    猜你喜欢
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2013-03-05
    相关资源
    最近更新 更多