自定义倒计时

 

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <title>自定义倒计时</title>
    <style>
        #countdownElement {
            font-size: 20px;
        }

        #dialogCountdownElement {
            position: fixed;
            transform: translate(-150%, -20%);

            z-index: 999;

        }

        #dialogCountdownElement::backdrop {
            background-color: #8008;
            backdrop-filter: blur(2px);
        }
    </style>
</head>

<body>

    <!-- 倒计时 -->
    <button onclick="dialogCountdownElement.showModal()" id="countdownElement">倒计时</button>
    <dialog id="dialogCountdownElement">
        <form method="dialog">
            <div>
                <label for="message">更改提示信息:</label>
                <input type="text" id="message" value="距离2024年国庆节还有:">
            </div>
            <div>
                <label for="targetDate">更改目标日期:</label>
                <input type="date" id="targetDate">

            </div>
            <p>2025主要节日时间表</p>
            <ul>
                <li>元旦:2025年1月1日</li>
                <li>春节:2025年2月12日</li>
                <li>清明节:2025年4月4日</li>
                <li>劳动节:2025年5月1日</li>
                <li>端午节:2025年6月2日</li>
                <li>中秋节:2025年9月21日</li>
                <li>国庆节:2025年10月1日</li>
            </ul>
            <button type="submit" style="display: block; margin: 5px auto;">关闭</button>
        </form>
    </dialog>
    <script>
        /* 倒计时功能实现*/
        // 加载时从localStorage读取数据
        window.onload = function () {
            var message = localStorage.getItem('message');
            var targetDate = localStorage.getItem('targetDate');

            if (message) {
                document.getElementById('message').value = message;
            }
            if (targetDate) {
                document.getElementById('targetDate').value = targetDate;
            }
        };

        // 保存数据到localStorage
        function saveData() {
            var message = document.getElementById('message').value;
            var targetDate = document.getElementById('targetDate').value;

            localStorage.setItem('message', message);
            localStorage.setItem('targetDate', targetDate);
        }

        // 监听输入框的变化并保存数据
        document.getElementById('message').addEventListener('input', saveData);
        document.getElementById('targetDate').addEventListener('input', saveData);

        function showCountdown() {
            var message = document.getElementById('message').value;
            var targetDateInput = document.getElementById('targetDate');
            var targetDateValue = targetDateInput.value;
            // 这里继续您的倒计时逻辑
        }
        function showCountdown() {
            var message = document.getElementById('message').value;
            var targetDateInput = document.getElementById('targetDate');
            var targetDateValue = targetDateInput.value;
            var now = new Date();
            var targetDate;

            if (targetDateValue) {
                targetDate = new Date(targetDateValue);
            } else {
                targetDate = new Date(2024, 9, 1); // 默认值:2024年10月1日
            }

            var diff = targetDate - now;

            var days = Math.floor(diff / (1000 * 60 * 60 * 24));
            var hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
            var minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
            var seconds = Math.floor((diff % (1000 * 60)) / 1000);

            var countdownElement = document.getElementById('countdownElement');
            countdownElement.innerHTML = `${message}${days}天${hours}小时${minutes}分${seconds}秒`;
        }

        showCountdown();
        setInterval(showCountdown, 1000);
        /* 倒计时功能实现 结束*/
    </script>
</body>

</html>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值