jQuery简单倒计时效果完整示例

下面我将为您详细讲解“jQuery简单倒计时效果完整示例”的攻略。

1. 初始设置

在HTML代码中,需要先建立一个倒计时容器,并在其中设置好倒计时的初始状态,如下所示:

<div id="countdown">
    <div>
        <span id="days"></span>
        <div class="countdown-text">Days</div>
    </div>
    <div>
        <span id="hours"></span>
        <div class="countdown-text">Hours</div>
    </div>
    <div>
        <span id="minutes"></span>
        <div class="countdown-text">Minutes</div>
    </div>
    <div>
        <span id="seconds"></span>
        <div class="countdown-text">Seconds</div>
    </div>
</div>

这段HTML代码会生成一个类似于时钟的倒计时效果,并将倒计时的天数、小时数、分钟数、秒数展示在相应的HTML元素中。

2. 倒计时的实现

在JS代码中,使用jQuery库来获取和操作HTML元素。首先,需要设置好要倒计时的目标时间,并将其转换成JavaScript中的日期对象:

var endDate = new Date("2022-01-01T00:00:00");

然后在倒计时函数中,使用JavaScript日期对象中提供的方法来获取当前时间和目标时间之间的差值,并将差值转换为天数、小时数、分钟数、秒数,最终将这些值更新到HTML元素中:

function countdown() {
    var now = new Date();
    var timeLeft = endDate - now;
    var daysLeft = Math.floor(timeLeft / (1000 * 60 * 60 * 24));
    var hoursLeft = Math.floor((timeLeft / (1000 * 60 * 60)) % 24);
    var minutesLeft = Math.floor((timeLeft / (1000 * 60)) % 60);
    var secondsLeft = Math.floor((timeLeft / 1000) % 60);

    $("#days").text(daysLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));
    $("#hours").text(hoursLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));
    $("#minutes").text(minutesLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));
    $("#seconds").text(secondsLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));

    setTimeout(countdown, 1000);
}

在倒计时值的更新中,使用了toLocaleString方法,并设置了参数{minimumIntegerDigits: 2},来确保数字在展示时前导0个数正确。最后,使用setTimeout函数来递归调用countdown函数,以实现倒计时的循环更新。

3. 完整示例说明

下面提供两条完整示例说明,以帮助您更好的理解倒计时效果的实现方法。

示例1:自定义倒计时目标时间

在下面的示例中,使用了自定义的倒计时目标时间(2022-12-31T23:59:59)。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jQuery简单倒计时效果完整示例</title>
    <style>
        #countdown {
            display: flex;
            justify-content: space-between;
            width: 340px;
            margin: 0 auto;
        }
        #countdown > div {
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: column;
            font-size: 24px;
        }
        #countdown > div span {
            font-size: 48px;
        }
        .countdown-text {
            text-transform: uppercase;
            font-size: 12px;
        }
    </style>
</head>
<body>
<div id="countdown">
    <div>
        <span id="days"></span>
        <div class="countdown-text">Days</div>
    </div>
    <div>
        <span id="hours"></span>
        <div class="countdown-text">Hours</div>
    </div>
    <div>
        <span id="minutes"></span>
        <div class="countdown-text">Minutes</div>
    </div>
    <div>
        <span id="seconds"></span>
        <div class="countdown-text">Seconds</div>
    </div>
</div>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
    var endDate = new Date("2022-12-31T23:59:59");

    function countdown() {
        var now = new Date();
        var timeLeft = endDate - now;
        var daysLeft = Math.floor(timeLeft / (1000 * 60 * 60 * 24));
        var hoursLeft = Math.floor((timeLeft / (1000 * 60 * 60)) % 24);
        var minutesLeft = Math.floor((timeLeft / (1000 * 60)) % 60);
        var secondsLeft = Math.floor((timeLeft / 1000) % 60);

        $("#days").text(daysLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));
        $("#hours").text(hoursLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));
        $("#minutes").text(minutesLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));
        $("#seconds").text(secondsLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));

        setTimeout(countdown, 1000);
    }

    countdown();
</script>
</body>
</html>

示例2:改变倒计时效果样式

在下面的示例中,改变了原先的倒计时效果样式(增加了一个背景颜色和动画效果)。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jQuery简单倒计时效果完整示例</title>
    <style>
        body {
            background-color: #f1f1f1;
        }
        #countdown {
            display: flex;
            justify-content: space-between;
            width: 340px;
            margin: 0 auto;
            background-color: #fff;
            border-radius: 5px;
            padding: 20px;
            box-shadow: 0 0 20px rgba(0,0,0,0.2);
        }
        #countdown > div {
            display: flex;
            justify-content: center;
            align-items: center;
            flex-direction: column;
            font-size: 24px;
            width: 75px;
            height: 100px;
            background-color: #eee;
            border-radius: 5px;
            box-shadow: 0 0 10px rgba(0,0,0,0.1);
            animation: scale 0.5s ease-in-out;
            animation-fill-mode: forwards;
        }
        @keyframes scale {
            0% {
                opacity: 0;
                transform: scale(0);
            }
            100% {
                opacity: 1;
                transform: scale(1);
            }
        }
        #countdown > div span {
            font-size: 48px;
        }
        .countdown-text {
            text-transform: uppercase;
            font-size: 12px;
        }
    </style>
</head>
<body>
<div id="countdown">
    <div>
        <span id="days"></span>
        <div class="countdown-text">Days</div>
    </div>
    <div>
        <span id="hours"></span>
        <div class="countdown-text">Hours</div>
    </div>
    <div>
        <span id="minutes"></span>
        <div class="countdown-text">Minutes</div>
    </div>
    <div>
        <span id="seconds"></span>
        <div class="countdown-text">Seconds</div>
    </div>
</div>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
    var endDate = new Date("2022-12-31T23:59:59");

    function countdown() {
        var now = new Date();
        var timeLeft = endDate - now;
        var daysLeft = Math.floor(timeLeft / (1000 * 60 * 60 * 24));
        var hoursLeft = Math.floor((timeLeft / (1000 * 60 * 60)) % 24);
        var minutesLeft = Math.floor((timeLeft / (1000 * 60)) % 60);
        var secondsLeft = Math.floor((timeLeft / 1000) % 60);

        $("#days").text(daysLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));
        $("#hours").text(hoursLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));
        $("#minutes").text(minutesLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));
        $("#seconds").text(secondsLeft.toLocaleString(undefined, {minimumIntegerDigits: 2}));

        setTimeout(countdown, 1000);
    }

    countdown();
</script>
</body>
</html>

这两个示例代码中,均使用了jQuery库来操作HTML元素,并通过设置不同的endDate来设定不同的倒计时目标时间,实现了完整的倒计时效果,并使用了不同的CSS样式来设置不同的倒计时效果展示方式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery简单倒计时效果完整示例 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 如何使用HTML或jQuery重定向到一个页面的特定部分

    下面是如何使用HTML或jQuery重定向到一个页面的特定部分的完整攻略。 使用HTML进行重定向 HTML中的锚点是处理页面内部链接的一种方法。如果您在网页中设置了一个锚点,您可以使用这个锚点来在页面上自动滚动到指定的位置。 步骤一:设置锚点 首先,在您要重定向到的网页上设置一个锚点,这个锚点可以在页面上的任何位置,只要它有一个唯一的名称。 <a n…

    jquery 2023年5月12日
    00
  • jQuery的text()方法用法分析

    当我们需要获取或修改某个HTML元素的文本内容时,可以使用jQuery的text()方法。下面,我们来详细分析一下text()方法的用法。 方法语法 text()方法的语法如下: $(selector).text(content) 其中,selector是需要修改文本内容的HTML元素的选择器,content是要设置的文本内容。如果不传递参数,text()方…

    jquery 2023年5月27日
    00
  • 如何禁用一个jQuery-ui小部件的可拖动性

    当需要禁用一个jQuery-ui小部件的可拖动性时,可以按照以下步骤进行操作: 步骤一:创建HTML结构 首先,需要创建一个包含jQuery-ui小部件的HTML结构。以下是一个例子: <!DOCTYPE html> <html> <head> <title>Disable Draggable Widget&l…

    jquery 2023年5月9日
    00
  • jQWidgets jqxSplitter render()方法

    下面是针对”jQWidgets jqxSplitter render()方法”的完整攻略。 什么是jqxSplitter jqxSplitter是jQWidgets的一个组件,它允许开发者在Web应用中创建可分割的、可调整大小和位置的窗口。 官方文档地址:https://www.jqwidgets.com/documentation/jqxsplitter/…

    jquery 2023年5月11日
    00
  • 关于jQuery $.isNumeric vs. $.isNaN vs. isNaN

    关于jQuery $.isNumeric vs. $.isNaN vs. isNaN 的完整攻略 在JavaScript中,我们可以使用isNaN()函数来检查一个值是否为非数字(Not a Number)。但是,isNaN()函数有时会产生一些奇怪的结果,比如字符串”123″被认为是一个非数字值。于是,在jQuery中,我们可以使用与之相关的$.isNum…

    jquery 2023年5月28日
    00
  • JS实现动态修改table及合并单元格的方法示例

    讲解 “JS实现动态修改table及合并单元格的方法示例” 的完整攻略: 1. 修改表格内容 1.1 获取表格 首先,我们需要在 HTML 中添加一个表格,并且通过 JS 获取到它。可以使用 document.getElementById() 或 document.querySelector() 方法获取表格。 <table id="myTa…

    jquery 2023年5月27日
    00
  • jQWidgets jqxGrid unselectcell()方法

    jQWidgets jqxGrid unselectcell()方法 jQWidgets jqxGrid 是一种表格控件,用于在 Web 应用程序中创建表格。unselectcell() 方法是 jqxGrid 控件的一个方法,用于取消单元格的选择。本文将详细讲解 unselectcell() 方法的使用方法,并提供两个示例。 方法 unselectcell…

    jquery 2023年5月10日
    00
  • js加密解密字符串可自定义密码因子

    JS加密解密字符串可自定义密码因子 在前端开发中,将一些敏感数据传输到后端时,通常需要加密。在JS中,可以使用加密算法对数据进行加密和解密,同时还可以通过自定义密码因子提高加密强度。以下是一些示例说明: 加密方法 function encrypt(str, pwd) { if(pwd == null || pwd.length <= 0) { aler…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部