基于jQuery的倒计时实现代码

关于“基于jQuery的倒计时实现代码”的攻略,我们可以分为以下几个步骤详细讲解:

1. 创建html结构

首先,我们需要在html中创建倒计时所需的html结构。

<div id="countdown">
  <span class="days"></span>
  <span class="hours"></span>
  <span class="minutes"></span>
  <span class="seconds"></span>
</div>

2. 导入jQuery

我们需要在html中导入jQuery库,用于实现倒计时的逻辑。

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

3. 编写jQuery代码

在页面加载完成后,我们使用jQuery选择器选中倒计时所需的元素,并通过计算时间差来实现倒计时。

$(document).ready(function(){
  // 目标时间
  var endTime = new Date('2022-01-01 00:00:00').getTime();

  // 每秒更新倒计时时间
  setInterval(function(){
    // 当前时间
    var now = new Date().getTime();

    // 时间差
    var distance = endTime - now;

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

    // 更新倒计时显示
    $('#countdown .days').text(days + '天');
    $('#countdown .hours').text(hours + '小时');
    $('#countdown .minutes').text(minutes + '分钟');
    $('#countdown .seconds').text(seconds + '秒');
  }, 1000);
});

此时,我们的倒计时就已经完成了。

示例说明

示例一

我们可以根据实际需求修改目标时间,比如设置倒计时为距离2022年1月1日还有一天一小时。

// 目标时间
var endTime = new Date('2022-01-01 00:00:00').getTime() - (24 * 60 * 60 * 1000) - (60 * 60 * 1000);

示例二

我们也可以自定义倒计时的样式,比如采用圆形倒计时样式。

<div id="circle-countdown">
  <div class="countdown-item days">
    <span class="countdown-value"></span>
    <span class="countdown-label">天</span>
  </div>
  <div class="countdown-item hours">
    <span class="countdown-value"></span>
    <span class="countdown-label">小时</span>
  </div>
  <div class="countdown-item minutes">
    <span class="countdown-value"></span>
    <span class="countdown-label">分钟</span>
  </div>
  <div class="countdown-item seconds">
    <span class="countdown-value"></span>
    <span class="countdown-label">秒</span>
  </div>
</div>
#circle-countdown {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100px;
}

.countdown-item {
  position: relative;
  width: 50px;
  height: 50px;
  margin: 0 10px;
  border-radius: 50%;
  color: #fff;
  background-color: #999;
  text-align: center;
  font-size: 20px;
  line-height: 50px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
  z-index: 1;
}

.countdown-item:before {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #f00;
  z-index: -1;
  transform: scale(1, 1);
  transition: transform 1s cubic-bezier(0.5, 1.6, 0.4, 0.5), box-shadow 1s;
}

.countdown-item.days:before {
  background-color: #0ff;
}

.countdown-item.hours:before {
  background-color: #f0f;
}

.countdown-item.minutes:before {
  background-color: #ff0;
}

.countdown-item.seconds:before {
  background-color: #0f0;
}

.countdown-item .countdown-value {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.countdown-item .countdown-label {
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 12px;
  font-weight: bold;
}
$(document).ready(function(){
  // 目标时间
  var endTime = new Date('2022-01-01 00:00:00').getTime();

  // 每秒更新倒计时时间
  setInterval(function(){
    // 当前时间
    var now = new Date().getTime();

    // 时间差
    var distance = endTime - now;

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

    // 更新倒计时显示
    $('#circle-countdown .days .countdown-value').text(days);
    $('#circle-countdown .hours .countdown-value').text(hours);
    $('#circle-countdown .minutes .countdown-value').text(minutes);
    $('#circle-countdown .seconds .countdown-value').text(seconds);

    // 更新圆形倒计时样式
    $('#circle-countdown .countdown-item:before').css('transform', 'scale(' + (10 - seconds) / 10 + ')');
  }, 1000);
});

以上就是基于jQuery实现倒计时的完整攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于jQuery的倒计时实现代码 - Python技术站

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

相关文章

  • jQWidgets jqxNumberInput allowNull属性

    以下是关于 jQWidgets jqxNumberInput 组件中 allowNull 属性的详细攻略。 jQWidgets jqxNumberInput allowNull 属性 jQWidgets jqxNumberInput 组件的 allowNull 属性用于设置是否允许输入空值。 语法 $(‘#numberInput’).jqxNumberInp…

    jquery 2023年5月12日
    00
  • jQuery hasClass()的应用实例

    在这里我将为您讲解如何使用jQuery中的hasClass()方法实现判断元素是否有某个类名的功能。 1. 什么是jQuery hasClass()方法 hasClass()是jQuery提供的一个用来判断一个元素是否有指定类名的方法,它的语法为:$(selector).hasClass(className)。其中,selector表示选择器,classNa…

    jquery 2023年5月12日
    00
  • 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)

    下面是详细讲解如何在前台脚本通过json传递数据到后台的完整攻略。 1. 基础知识 在使用前台脚本通过json传递数据到后台之前,需要了解以下一些基本知识: AJAX:Asynchronous JavaScript and XML,即异步的 JavaScript 和 XML。它是一种在不刷新整个页面的情况下,通过后台返回的数据来局部刷新页面的技术。 JSON…

    jquery 2023年5月28日
    00
  • 如何用jQuery Mobile制作一个值或文本输入

    以下是使用jQuery Mobile制作一个值或文本输入的完整攻略: 首先,在HTML文件中引入jQuery Mobile库。可以以下代码实现: <head> <meta name="viewport" content="width=device, initial-scale=1"> <t…

    jquery 2023年5月11日
    00
  • jQuery截取指定长度字符串代码

    下面是关于“jQuery截取指定长度字符串代码”的详细讲解: 1. 背景介绍 在一些前端开发项目中,我们常常需要截取字符串的前几个字符来做一些特殊处理,比如显示省略号、截取部分内容等。而jQuery框架本身就提供了相应的API,为开发人员提供了方便。 2. 截取字符串 截取字符串,借助的是 JavaScript 中的 substr() 方法。jQuery 版…

    jquery 2023年5月28日
    00
  • jQuery插件pagination实现分页特效

    以下是详细讲解“jQuery插件pagination实现分页特效”的攻略: 准备工作 在html中引入jQuery和pagination插件 <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> &l…

    jquery 2023年5月28日
    00
  • jQWidgets jqxGrid的列点击事件

    以下是关于“jQWidgets jqxGrid的列点击事件”的完整攻略,包含两个示例说明: 简介 jqxGrid 控件的列点击事件(columnreordered)在用户重新列时触发。 完整攻略 以下是 jqxGrid 控件列点击事件的完整攻略: 监听列点击事件 $("#jqxgrid").on(‘columnreordered’, fu…

    jquery 2023年5月10日
    00
  • jQuery读取XML文件内容的方法

    jQuery是一种流行的JavaScript库,它提供了一种简明而强大的方法来处理HTML文档、处理事件、动态加载数据等操作。在jQuery中,读取XML文件的方法非常容易实现。以下是实现这个目标的完整攻略。 步骤1:加载XML文件 你需要使用$.ajax()方法来读取XML文件。以下是示例代码: $.ajax({ type: "GET"…

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