vue 实现一个简单倒计时功能

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>倒计时示例</title>
</head>
<body>
    <div id="countdown"></div>
    <script>
         //封装的方法
        function countdown() {

            // 设置倒计时的结束时间为未来某个时间
            var endTime = new Date("2023-12-31 23:59:59");

            // 每秒执行一次
            setInterval(function() {
                // 获取当前时间和结束时间的时间差
                var nowTime = new Date();
                var timeDiff = endTime.getTime() - nowTime.getTime();

                // 计算剩余时间
                var days = Math.floor(timeDiff / 1000 / 60 / 60 / 24);
                var hours = Math.floor((timeDiff / 1000 / 60 / 60) % 24);
                var minutes = Math.floor((timeDiff / 1000 / 60) % 60);
                var seconds = Math.floor((timeDiff / 1000) % 60);

                // 将剩余时间显示在页面上
                var countdownDiv = document.getElementById("countdown");
                countdownDiv.innerHTML = "距离2024年元旦还有:" + days + "天" + hours + "小时" + minutes + "分" + seconds + "秒";
            }, 1000);
        }

        // 页面加载完成后开始倒计时
        window.onload = function() {
            countdown();
        };
    </script>
</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您想要了解如何用Vue3实现时分秒倒计时功能。这可以通过以下步骤来完成: 1. 创建一个组件或页面,并在组件或页面中定义计时器需要用到的状态,如hours, minutes, seconds和isCountingDown等状态。 2. 在生命周期函数中启动计时器,例如在mounted钩子函数中使用setInterval函数定时更新状态中的hours、minutes和seconds数值。 3. 添加显示组件或页面,以显示倒计时,并在页面或组件的模板中绑定状态数据。 4. 创建倒计时方法,使其在用户输入倒计时时间后启动,并在倒计时过程中修改状态,例如计时器到达00:00:00时,自动结束计时。 下面是一个简单的示例代码: ``` <template> <div class="countdown-timer"> <div>{{ formattedTime }}</div> <button @click="toggleCountdown">{{ isCountingDown ? 'Stop' : 'Start' }}</button> </div> </template> <script> import { reactive } from 'vue' export default { name: 'CountdownTimer', setup() { const state = reactive({ hours: 0, minutes: 0, seconds: 0, isCountingDown: false, countdownTimer: null, }) const formatTime = (time) => (time < 10 ? `0${time}` : time) const countdown = () => { if (state.seconds === 0) { if (state.minutes === 0) { if (state.hours === 0) { clearInterval(state.countdownTimer) state.isCountingDown = false // Do something when countdown is completed } else { state.hours-- state.minutes = 59 state.seconds = 59 } } else { state.minutes-- state.seconds = 59 } } else { state.seconds-- } } const toggleCountdown = () => { if (!state.isCountingDown) { state.countdownTimer = setInterval(countdown, 1000) state.isCountingDown = true } else { clearInterval(state.countdownTimer) state.isCountingDown = false } } const formattedTime = computed(() => { const { hours, minutes, seconds } = state return `${formatTime(hours)}:${formatTime(minutes)}:${formatTime(seconds)}` }) return { state, formattedTime, toggleCountdown, } }, } </script> ``` 在这个代码示例中,我们使用Vue3的reactive函数定义计时器需要用到的状态,以及countdown方法和toggleCountdown方法。在组件或页面的模板中,我们绑定了formattedTime计算属性和toggleCountdown方法,使用户可以启动或停止倒计时。 总的来说,实现一个简单的时分秒倒计时功能并不复杂,只需要通过定义状态、创建计时器和绑定模板的方式来完成即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值