Js时间倒计时

news2024/10/5 0:28:12

😇作者介绍:一个有梦想、有理想、有目标的,且渴望能够学有所成的追梦人。

🎆学习格言:不读书的人,思想就会停止。——狄德罗

⛪️个人主页:进入博主主页

🗼推荐系列:点击进入

🌼欢迎小伙伴们访问到博主的文章内容,在浏览阅读过程发现需要纠正的地方,烦请指出,愿能与诸君一同成长!

目录

文章内容如下

✏️前言

✏️一、倒计时

✏️二、按钮点击发送,10秒内被禁用

✏️总结


文章内容如下


✏️前言

在JavaScript中,时间倒计时 下面代码会创建一个定时器,每秒钟更新一次倒计时,不是能难,记住关键字,运用关键字。


✏️一、倒计时

🚀首先附上源码

// 目标日期和时间
var targetDate = new Date('2022-12-31 23:59:59');

// 更新倒计时
function updateCountdown() {
  // 当前日期和时间
  var currentDate = new Date();

  // 计算剩余时间(单位:毫秒)
  var remainingTime = targetDate - currentDate;

  // 如果剩余时间小于等于0,则倒计时结束
  if (remainingTime <= 0) {
    clearInterval(timer); // 停止定时器
    console.log('倒计时结束');
    return;
  }

  // 将剩余时间转换为天、小时、分钟和秒
  var days = Math.floor(remainingTime / (1000 * 60 * 60 * 24));
  var hours = Math.floor((remainingTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  var minutes = Math.floor((remainingTime % (1000 * 60 * 60)) / (1000 * 60));
  var seconds = Math.floor((remainingTime % (1000 * 60)) / 1000);

  // 输出倒计时
  console.log('剩余时间:' + days + ' 天 ' + hours + ' 小时 ' + minutes + ' 分钟 ' + seconds + ' 秒');
}

// 每秒钟更新一次倒计时
var timer = setInterval(updateCountdown, 1000);

🚀下面我解读一下关键字:clearInterval setInterval,看下面解释

👉setInterval 和 clearInterval 是 JavaScript 中用于处理定时任务的函数。

setInterval 函数用于设置一个周期性的定时任务,它接受两个参数:一个函数和一个时间间隔(以毫秒为单位)。该函数会在每个时间间隔之后被调用一次,从而创建一个循环执行的效果。例如,setInterval(updateCountdown, 1000) 将会每秒钟调用一次 updateCountdown 函数。

clearInterval 函数用于停止由 setInterval 创建的定时任务。它接受一个参数,即要停止的定时任务的标识符(也就是 setInterval 返回的值)。通过调用 clearInterval 并传递定时任务的标识符,可以停止这个定时任务的执行。

使用 setInterval 和 clearInterval 可以实现各种定时任务,比如定时更新页面内容、实现动画效果或者计时器等

👉以上代码会创建一个定时器,每秒钟更新一次倒计时。你可以将目标日期和时间修改为你希望的倒计时结束时间。在控制台输出中,你将看到剩余的天数、小时、分钟和秒数。当倒计时结束后,定时器会被停止,并输出"倒计时结束"。


✏️二、按钮点击发送,10秒内被禁用

🚀首先附上源码

效果图

 

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link href="//unpkg.com/layui@2.8.8/dist/css/layui.css" rel="stylesheet">
    <style>
 .sendingEmailCode{
    border: 1px solid grey;
    border-radius: 5px;
    height: 30px;
    width: 70px;
    background: white;
    /* cursor:no-drop */
    cursor: pointer;
    transition: all 0.2s ease-out;
}
.sendingEmailCode:hover{
    background: rgb(195, 236, 177);
    border: 1px solid rgb(195, 236, 177);
    font-weight: bold;
}
    </style>
</head>
<body>
    
    <button  class = "sendingEmailCode" onclick="sendingEmailCodes()">发送</button>


</body>
<!-- 请勿在项目正式环境中引用该 layui.js 地址 -->
<script src="//unpkg.com/layui@2.8.8/dist/layui.js"></script>
<script>

/***
 * 发送邮件
 */
 function sendingEmailCodes(){


layui.use(['layer','jquery'],function(){
    //调用jquery里面封装的方法
    var element = layui.element ;
    var layer = layui.layer ;
    var $ = layui.jquery ;
 
    //定义一个变量存放时长
    var total = 10 ;

    //三十秒禁用按钮
   var time = setInterval(function(){
        total-- ;
        $(".sendingEmailCode").text("发送("+total+"秒)")
        .attr('disabled',true)
        .css('background','rgb(195, 236, 177)')
        .css('border','1px solid rgb(195, 236, 177)')
        .css('cursor','no-drop') ;    
        if(total===0){
            clearInterval(time) ;//清除定时器
             $(".sendingEmailCode").text("重新发送")
            .attr('disabled',false)
            .css('background','white')
            .css('border','1px solid grey')
            .css('cursor','pointer') ; 
            $(".sendingEmailCode").hover(function(){
                $(this)
                .attr('disabled',false)
                .css('background','rgb(195, 236, 177)')
                .css('border','1px solid rgb(195, 236, 177)')
                .css('cursor','pointer') ; 
            },function(){
                $(this)
                .attr('disabled',false)
                .css('background','white')
                .css('border','1px solid grey')
                .css('cursor','pointer') ;
            })
        }
    },1000)
})
}
</script>
</html>

👉附上源码,不过多解读了,大家可以C+V去测试测试

🚀同样我也解读一下相关的关键字吧

👉setInterval 和 clearInterval 是 JavaScript 中用于处理定时任务的函数。

setInterval 函数用于设置一个周期性的定时任务,它接受两个参数:一个函数和一个时间间隔(以毫秒为单位)。该函数会在每个时间间隔之后被调用一次,从而创建一个循环执行的效果。例如,setInterval(updateCountdown, 1000) 将会每秒钟调用一次 updateCountdown 函数。

clearInterval 函数用于停止由 setInterval 创建的定时任务。它接受一个参数,即要停止的定时任务的标识符(也就是 setInterval 返回的值)。通过调用 clearInterval 并传递定时任务的标识符,可以停止这个定时任务的执行。

使用 setInterval 和 clearInterval 可以实现各种定时任务,比如定时更新页面内容、实现动画效果或者计时器等


✏️总结

好了,js实现倒计时,就写到这了,如果有不对的地方,希望多多指出,望与诸君共同进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/699432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue 0-1搭建项目

vue 从0-1搭建项目 前提&#xff1a;进入到需要创建项目的文件夹中&#xff0c;打开命令行窗口 windowsr 打开命令行窗口 创建vue2.0项目&#xff1a; 自动创建 1.vue create 项目名称 仅包含3个功能&#xff1a;vue2/3,babel&#xff0c;eslint 手动创建 1.vue create 项目名…

ModaHub魔搭社区:详解向量数据库Milvus的Mishards:集群分片中间件(五)

目录 在 Kubernetes 中部署 Mishards 集群 安装前提 安装流程 卸载 Mishards 从单机升级到 Mishards 集群 注意事项 基本案例 在 Kubernetes 中部署 Mishards 集群 安装前提 Kubernetes 版本 1.10 及以上Helm 版本 2.12.0 及以上 关于 Helm 的使用请参考 Helm 使用指…

【python入门系列】第一章:Python基础语法和数据类型

文章目录 前言一、简单语法1. 注释 这是一个单行注释2. 变量 二、数据类型1.字符串2.整数3.浮点数4.布尔值5.列表 三、运算符1.算术运算符&#xff1a;用于执行基本的算术操作&#xff0c;如加、减、乘和除。2.比较运算符&#xff1a;用于比较两个值的大小或相等性。3.逻辑运算…

01.网络编程-基础概念

网络编程就是指编写互联网项目&#xff0c;项目可以通过网络传输数据进行通讯 网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包&#xff0c;在接收端按照规定好的协议把包进行解析&#xff0c;从而提取出对应的信息&#xff0c;达到通信的目的 1.1 软件结构…

Oracle 11g安装配置完美教程 - Windows

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…

用Java解决华为OD机试考题,目标300+真题,清单奉上,祝你上岸

华为OD机考大纲 其它语言版本华为 OD 机试题清单&#xff08;机试题库还在逐日更新&#xff09;详细大纲 其它语言版本 本目录为华为od机试JS题解目录&#xff0c;其它版本清单如下 ⭐️华为OD机考 Python https://blog.csdn.net/hihell/category_12199275.html ⭐️华为OD机考…

BOSHIDA DC电源模块低温试验检测详细分析

BOSHIDA DC电源模块低温试验检测详细分析 DC电源模块的低温试验是电源应用领域中的一项重要测试&#xff0c;它可以检测模块在低温环境下的性能表现是否与设计要求相符。这是因为在一些极端环境下&#xff0c;电源模块的性能会受到影响&#xff0c;从而影响整个系统的运行稳定…

山西电力市场日前价格预测【2023-06-30】

日前价格预测 预测明日&#xff08;2023-06-30&#xff09;山西电力市场全天平均日前电价为362.38元/MWh。其中&#xff0c;最高日前价格为477.68元/MWh&#xff0c;预计出现在21: 15。最低日前电价为247.28元/MWh&#xff0c;预计出现在13: 00。以上预测仅供学习参考&#xff…

Pytorch深度强化学习(3):详解K摇臂赌博机模型和ϵ-贪心算法

目录 1 K-摇臂赌博机2 ϵ \epsilon ϵ-贪心算法3 softmax算法4 Python实现与分析 1 K-摇臂赌博机 单步强化学习是最简单的强化学习模型&#xff0c;其以贪心策略为核心最大化单步奖赏 如图所示&#xff0c;单步强化学习的理论模型是 K K K-摇臂赌博机( K K K-armed bandit)&…

内部类之成员内部类

我们在阅读源码的过程中&#xff0c;会遇到很多内部类&#xff0c;让我们阅读难度增加。这篇文章主要介绍成员内部类的作用 1.成员内部类可以访问外部类的所有方法和成员变量&#xff08;不论是静态的还是非静态的&#xff09; package com.high.concurrency.inner;/*** auth…

如何让chatgpt给我们实现一个桌面便签?

我&#xff1a; 用Java开发一款桌面便签软件。功能需求&#xff1a;1、便签可以钉在桌面任意角落&#xff1b;2、便签内容实时保存到本地&#xff1b;3、有新增按钮&#xff0c;点击新增时清除当前面板上的内容&#xff0c;新建一条新的便签内容&#xff0c;并保存到本地&#…

通往AGI之路:揭秘英伟达A100、A800、H800、V100在高性能计算与大模型训练中的霸主地位

AGI | NLP | A100 | H100 | Nvidia | Aurora GPT| LLM | A800 | V100 | Intel | ChatGPT 日前&#xff0c;随着深度学习、高性能计算、大模型训练等技术的保驾护航&#xff0c;通用人工智能时代即将到来。各个厂商也都在紧锣密鼓的布局&#xff0c;如英伟达前段时间发布GH 200…

C3.ai:一个即将“破灭”的人工智能泡沫

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 C3.ai仅适用于能承受高风险波动的投资者 猛兽财经曾在之前分析过C3.ai&#xff08;AI&#xff09;这家公司&#xff0c;认为C3.ai可能在借助人工智能热潮炒作自己。截止撰写本文时&#xff0c;C3.ai的股价已跌到了到2…

使用ganymed-ssh2连接linux报错 Cannot negotiate, proposals do not match

ganymed-ssh2连接linux报错 背景报错信息解决方案&#xff1a;运行成功 背景 最近有个项目&#xff0c;需要在Linux下的服务器内写了一部分Python脚本&#xff0c;业务处理却是在Java内&#xff0c;那么就想能不能在Java里面&#xff0c;来远程执行Linux下的Python脚本&#x…

chatgpt赋能python:使用Python连接网络摄像头

使用Python连接网络摄像头 网络摄像头是现代生活中不可或缺的设备之一&#xff0c;其允许用户在远程位置查看实时视频流。Python语言提供了强大的工具来连接和控制网络摄像头。本文将向您展示如何使用Python连接网络摄像头以及如何将视频流数据流式传输到本地计算机。 环境设…

【AUTOSAR】BMS开发实际项目讲解(十九)----电池管理系统系统设计电池单体过放后再充电保护

电池单体过放后再充电保护 关联的系统需求 TSR-BMS-2101、TSR-BMS-2102、TSR-BMS-2103、TSR-BMS-2104、TSR-BMS-2105、TSR-BMS-2106、TSR-BMS-2107、TSR-BMS-2108、TSR-BMS-2109、TSR-BMS-2110、TSR-BMS-2111、TSR-BMS-2112、TSR-BMS-2113、TSR-BMS-2114、TSR-BMS-2115、TSR-B…

七年老Android推荐 : 日常开发中好用的工具 (一)

1. 前言 作为一名拥有七年经验的Android开发工程师&#xff0c;在日常开发中&#xff0c;总希望能提升自己的开发效率&#xff0c;对此也积累了一些工具&#xff0c;本文对此总结了一些好用的工具。 2. 视频转GIF工具 我们在写博客的时候&#xff0c;常常要录屏&#xff0c;…

leetcode:2000. 反转单词前缀(python3解法)

难度&#xff1a;简单 给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i &#xff0c;反转 word 中从下标 0 开始、直到下标 i 结束&#xff08;含下标 i &#xff09;的那段字符。如果 word 中不存在字符 ch &#xff0c;则无需进行任何操作。…

智云通CRM:在谈判中如何避免被客户利用的陷阱?

智云通CRM系统是一款专业的客户关系管理系统&#xff0c;帮助企业实现客户管理的数字化转型。在日常销售工作中&#xff0c;销售人员经常会面临各种问题和质疑&#xff0c;良好的应对技巧和回答方法对于维护好客户关系、促成交易非常重要。下面将介绍一些经常会被客户问到的问题…

从源码全面解析 dubbo 服务端服务调用的来龙去脉

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱敲代码的小黄&#xff0c;独角兽企业的Java开发工程师&#xff0c;CSDN博客专家&#xff0c;阿里云专家博主&#x1f4d5;系列专栏&#xff1a;Java设计模式、Spring源码系列、Netty源码系列、Kafka源码系列、JUC源码…