为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Svelte 倒计时冻结

使用 Svelte 倒计时冻结

炎炎设计 2023-11-02 21:22:49
我正在尝试使用 Svelte 创建倒计时。但不知何故,输出不是动态的,它不会改变,直到我刷新页面,然后值才会改变。我的代码中可能存在逻辑错误。有什么可以开始的吗?或者只是 svelte 的编译器有问题?谢谢    import { tweened } from 'svelte/motion';    var expected = new Date("Feb 5, 2021 15:37:25").getTime();    var now = new Date().getTime();    let distance = tweened(expected-now);    setInterval(()=> {        if ($distance > 0){            $distance-=1;        }    },1000)  $: days = Math.floor($distance / (1000 * 60 * 60 * 24));  $: hours = Math.floor(($distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));  $: minutes = Math.floor(($distance % (1000 * 60 * 60)) / (1000 * 60));  $: seconds = Math.floor(($distance % (1000 * 60)) / 1000);
查看完整描述

1 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您的代码存在一个逻辑问题 - 您只是从distance每秒中减去 1 毫秒,而不是 1000 毫秒(1 秒)。


如果您将代码更新为一次减去 1000 毫秒而不是 1,则倒计时将按预期工作。


setInterval(()=> {

    if ($distance > 0){

        $distance -= 1000;

    }

}, 1000)


查看完整回答
反对 回复 2023-11-02
  • 1 回答
  • 0 关注
  • 53 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信