使用 HTML、CSS 和 JS 的简单倒数计时器[通俗易懂]

使用 HTML、CSS 和 JS 的简单倒数计时器[通俗易懂]JavaScript倒数计时器用于各种电子商务和建设中的网站,以使用户保持最新状态。我们在不同类型的电子商务网站上看到,在任何产品或优惠到达之前的某个时间开始倒计时。在本文中,我使用简单的JavaScript代码创建了一个倒数计时器和你分享。您可以观看它的现场演示以了解它是如何工作的。如果您知道如何创建数字时钟,那么创建这样的项目就会容易得多。您可以在此处提前安排特定日期或时间。然后,在JavaScript代码的帮助下,从那个时间减去当前时间,减法每秒减少一次。正如您在上图中所看到的,我在这

大家好,又见面了,我是你们的朋友全栈君。

给大家安利一个免费且实用的前端刷题(面经大全)网站,?点击跳转到网站

博主前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住也分享一下给大家,?点击跳转到网站

在这里插入图片描述
直接跳到末尾 获取完整源码

JavaScript 倒数计时器 用于各种电子商务和建设中的网站,以使用户保持最新状态。我们可以在不同类型的电子商务网站上看到,在一些产品或优惠到达之前的某个时间开始倒计时。

在本文中,我使用了简单的 JavaScript 代码创建了一个倒数计时器和大家分享。

? 在线演示

演示地址:https://haiyong.site/tools/daojishi

你可以尝试它的现场演示以了解它是如何工作的。如果你知道如何创建数字时钟,那么创建这样的项目就会容易得多。您可以在此处提前安排特定日期或时间。然后,在 JavaScript 代码的帮助下,从那个时间减去当前时间,减法每秒减少一次。

正如您在上图中所看到的,我在这里使用了一张背景图。该页面包含四个小框,分别表示天、小时、分钟和秒。首先,你必须创建一个 HTML 和 CSS 文件。

? 第 1 步:倒数计时器的基本结构

这里我使用了一行<h5>标题,一个<form>表单和两个段落<p>还有一个pickedTime <div>用来显示剩余时间。然后我使用下面的 css 代码设计了网页body的样式。我使用了自己库存的一张图片作为背景图,你也可以使用任何其他您想要的颜色或者图片。

HTML

<div class="container">
	<h5>添加日期</h5>
	<form id="addDate">
		<input type="date" name="date" id="date">
		<input type="time" name="time" id="time">
		<button type="submit">提交</button>
	</form>
	<p class="hidden">截止日期<br><span id="until"></span></p>
	<p class="hidden">还剩的时间</p>
	<div class="pickedTime">
        <div class="time">
            <span id="time-years">-</span>
            <p></p>
        </div>
        <div class="time">
            <span id="time-days">-</span>
            <p></p>
        </div>
        <div class="time">
            <span id="time-hours">-</span>
            <p></p>
        </div>
        <div class="time">
            <span id="time-minutes">-</span>
            <p></p>
        </div>
        <div class="time">
            <span id="time-seconds">-</span>
            <p></p>
        </div>
    </div> 
</div>

CSS

@import url("https://fonts.proxy.ustclug.org/css2?family=Roboto&display=swap");
* { 
   
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

body { 
   
  width: 100%;
  min-height: 100vh;
  font-family: "Roboto", sans-serif;
  background: url("https://img-blog.csdnimg.cn/8efdbb066aa64083bae7577dd50aedca.png") no-repeat center/cover;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
}

效果图

在这里插入图片描述

? 第 2 步:使用 CSS 代码完善整体样式

调暗背景

body::before { 
   
	  content: "";
	  position: absolute;
	  width: 100%;
	  height: 100%;
	  background: rgba(0, 0, 0, 0.5);
	  z-index: -1;
	}

container <div> 设为居中

.container { 
   
	  text-align: center;
	  margin: 2rem auto 0;
	  padding: 0 15px;
	}

再将各部分元素分离开

.container > * { 
   
	  padding: 1rem;
}

设置h5字体大小

.container h5 { 
   
	 font-size: 2rem;
}

效果
在这里插入图片描述

? 第 3 步:调节各部分元素的布局

.container form input { 
   
	padding: 10px 15px;
	font-size: 1.2rem;
	border: none;
	border-right: 1px solid rgba(0, 0, 0, 0.5);
	}			

.container form button { 
   
	font-size: 1.2rem;
	outline: none;
	border: none;
	padding: 10px 15px;
	background: #ffffff;
	color: #b6281b;
	cursor: pointer;
	transition: 0.2s linear;
	}
.container form button:hover { 
   
	background: #b6281b;
	color: #ffffff;
	}

.container h1 { 
   
	font-size: 3rem;
	text-transform: uppercase;
	}
.container h5, .container h1, .container p { 
   
	color: #ffffff;
	text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
	}
.container p { 
   
	font-size: 1.2rem;
	width: 80%;
	margin: auto;
	}

.container .hidden { 
   
	display: none;
	}
.container .pickedTime { 
   
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	}
.container .pickedTime .time { 
   
	margin: 0.5rem;
	padding: 0.5rem 1rem;
	background: #ffffff;
	}
.container .pickedTime .time span { 
   
	font-size: 2.5rem;
	color: #b6281b;
	}
.container .pickedTime .time p { 
   
	color: #000000;
	width: 100%;
	}
.container .boxes { 
   
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	}
.container .boxes .box { 
   
	background: #ffffff;
	margin: 1rem;
	padding: 1rem 2rem;
	display: flex;
	flex-direction: column;
	text-align: center;
	}
.container .boxes .box span { 
   
	color: #b6281b;
	font-weight: bold;
	font-size: 4rem;
}
.container .boxes .box p { 
   
	color: #000000;
	width: 100%;
	}

效果
在这里插入图片描述

? 第 4 步:使用 JavaScript 代码激活它

现在我已经在 JavaScript 的帮助下实现了这个倒数计时器。我们需要获取用户设置了一个特定的日期Date.parse。也就是说,您必须确定要运行倒计时的时间。

➤ 一分钟等于 60 秒,所以在这种情况下 m = s * 60
➤ 一小时等于 60 分钟,在这种情况下 h = m * 60
➤ 一天等于 24 小时,所以在这种情况下 d = h * 24
➤ 一年等于 365天,所以在这种情况下 y = d * 365

const s = 1000,
    m = s * 60,
    h = m * 60,
    d = h * 24,
    y = d * 365;

指示每1000 毫秒使用setInterval. 由于倒计时时间每秒都是间歇性的,所以这个系统需要每秒更新一次。

setInterval(() => { 
   
    counting();
}, 1000);

获取用户提供的时间

const date = document.getElementById('date').value,
      time = document.getElementById('time').value,
      timeYears = document.getElementById('time-years'),
      timeDays = document.getElementById('time-days'),
      timeHours = document.getElementById('time-hours'),
      timeMinutes = document.getElementById('time-minutes'),
      timeSeconds = document.getElementById('time-seconds');

我使用的是new Date ()从设备中获取当前时间的方法。在这种情况下这里使用的时间不是任何服务器的时间,而是你设备的当地时间,然后使用了JavaScript 中的Math.floor

const interval = setInterval(() => { 
   
     const pickedDate = new Date(`${ 
     date} ${ 
     time}`).getTime(),
         currentDate = new Date().getTime(),
         difference = pickedDate - currentDate,
         years = Math.floor(difference / y);

     if (years < 1) { 
   
         timeYears.parentElement.style.display = 'none';
     } else { 
   
         timeYears.parentElement.style.display = 'block';

     }
     timeYears.innerHTML = Math.floor(difference / y);
     timeDays.innerHTML = Math.floor((difference % y) / d);
     timeHours.innerHTML = Math.floor((difference % d) / h);
     timeMinutes.innerHTML = Math.floor((difference % h) / m);
     timeSeconds.innerHTML = Math.floor((difference % m) / s);
 }, 1000);

最终完整的 JavaScript 代码

const s = 1000,
    m = s * 60,
    h = m * 60,
    d = h * 24,
    y = d * 365;

setInterval(() => { 
   
    counting();
}, 1000);


const formAddDate = document.getElementById('addDate');
formAddDate.addEventListener('submit', addTime);

function addTime(e) { 
   
    const date = document.getElementById('date').value,
        time = document.getElementById('time').value,
        timeYears = document.getElementById('time-years'),
        timeDays = document.getElementById('time-days'),
        timeHours = document.getElementById('time-hours'),
        timeMinutes = document.getElementById('time-minutes'),
        timeSeconds = document.getElementById('time-seconds');

    if (date && time) { 
   
        const chosenDate = new Date(`${ 
     date} ${ 
     time}`)
        document.getElementById('until').innerText = chosenDate.toString();

        const hidden = document.querySelectorAll('.hidden');
        hidden.forEach(el => el.style.display = 'block');

        const interval = setInterval(() => { 
   
            const pickedDate = new Date(`${ 
     date} ${ 
     time}`).getTime(),
                currentDate = new Date().getTime(),
                difference = pickedDate - currentDate,
                years = Math.floor(difference / y);

            if (years < 1) { 
   
                timeYears.parentElement.style.display = 'none';
            } else { 
   
                timeYears.parentElement.style.display = 'block';

            }
            timeYears.innerHTML = Math.floor(difference / y);
            timeDays.innerHTML = Math.floor((difference % y) / d);
            timeHours.innerHTML = Math.floor((difference % d) / h);
            timeMinutes.innerHTML = Math.floor((difference % h) / m);
            timeSeconds.innerHTML = Math.floor((difference % m) / s);
        }, 1000);

        document.querySelector('button').addEventListener('click', () => { 
   
            clearInterval(interval);
        });

        formAddDate.reset();
    }
    e.preventDefault();
}

演示效果

在这里插入图片描述
背景图:

在这里插入图片描述

? wuhu ! 起飞 !

希望通过本文,您已经学会了如何使用 HTML、CSS 和 JS 的简单倒数计时器。我之前使用 HTML、CSS 和 JavaScript 制作了更多类型的小工具,如果您愿意,可以查看这些设计。

使用 HTML、CSS 和 JavaScript 制作的随机密码生成器
使用 HTML、CSS、JS 和 API 制作一个很棒的天气 Web 应用程序
你真的熟练运用 HTML5 了吗,这10 个酷炫的 H5 特性你会几个?
❤️使用 HTML、CSS 和 JS 创建响应式可过滤的游戏+工具展示页面 ❤️
11个基于HTML/CSS/JS的情人节表白可爱小游戏、小动画【情人节主题征文】

我已经写了很长一段时间的技术博客,并且主要通过CSDN发表,这是我的一篇 Web 响应式简单倒数计时器教程。我喜欢通过文章分享技术与快乐。您可以访问我的博客: https://haiyong.blog.csdn.net/ 以了解更多信息。希望你们会喜欢!?

? 欢迎大家在评论区提出意见和建议!?

? 完整源码下载

如果你真的从这篇文章中学到了一些新东西,喜欢它,收藏它并与你的小伙伴分享。?最后,不要忘了❤或?支持一下哦。

完整的源代码:点击此处下载

免费源码可通过下方公号回复代码获取??????

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161648.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 洗水管理系统_洗衣店信息管理系统课设

    洗水管理系统_洗衣店信息管理系统课设技术:Java、JSP等摘要:随着人们对生活物质的追求,人们对穿着有了更加深刻的体会以及认识,很多高档的服装可以给人们带来气质方面的展现和心情的愉悦。然后,对于高档服装的清洗也成为了实际性的问题,为此很多人们选择送去洗衣店去清洗,其目的是既清洗的干净,而且还方便。这就给洗衣店带来非常大的管理压力,尤其是记录用户的收费信息等。本次系统设计之初就考虑到这一点来进行需求调查的,系统主要的模块由用户登录模块,注册模块,办卡管理,充值管理,寄存衣服办理,报表统计管理等基本实现功能模块,系统主要采取的是B/S开发模式

    2022年10月31日
    0
  • 谷歌搜索语法大全_Google语法

    谷歌搜索语法大全_Google语法Google是一款十分强大的搜索引擎,黑客们常常借助它搜索网站的一些敏感目录和文件,甚至可以利用它的搜索功能来自动攻击那些有漏洞的网站;而有些人可以通过搜索把某个个人的信息,包括住址、电话号码、出生年月等都可以搜索出来;当然我们在日常的生活中正确的借助Google搜索也可以更加高效的找到我们需要的东西。

    2022年9月11日
    0
  • Alex 的 Hadoop 菜鸟教程: 第21课 不只是在HBase中用SQL:Phoenix

    Alex 的 Hadoop 菜鸟教程: 第21课 不只是在HBase中用SQL:Phoenix什么是Phoenix?Phoenix的团队用了一句话概括Phoenix:”WeputtheSQLbackinNoSQL”意思是:我们把SQL又放回NoSQL去了!这边说的NoSQL专指HBase,意思是可以用SQL语句来查询Hbase,你可能会说:“Hive和Impala也可以啊!”。但是Hive和Impala还可以查询文本文件,Phoenix的特点就是,它只能查Hbase,别的类型都不支持!但是也因为这种专一的态度,让Phoenix在Hbase上查询的性能超过了Hive和Impala!

    2022年4月29日
    56
  • Ubuntu下内核编程之第一个模块helloworld[通俗易懂]

    Ubuntu下内核编程之第一个模块helloworld[通俗易懂]模块是驱动开发的必经之路,这也是我们在前边要构建内核源码树的目的所在。因为模块属于kernel编程了,和用户空间的c语言变成不同。他要依附于内核源码树的存在而存在,下面就开始我们的第一个模块的编写吧。     Ubuntu下内核编程之第一个模块——我的叫jun_module。随你怎么起名。以下是建立的全过程:     1、首先肯定是编写模块的源代码,和Makefile。我们建立一个专用

    2022年10月8日
    0
  • According to TLD or attribute directive in tag file, attribute value does not accept any expressions

    According to TLD or attribute directive in tag file, attribute value does not accept any expressions

    2022年1月30日
    30
  • 在总线周期的t1,t2,t3,t4状态,cpu_计算机组成原理总线带宽怎么算

    在总线周期的t1,t2,t3,t4状态,cpu_计算机组成原理总线带宽怎么算大家好,我是小黄鸭,又来更新了,应小伙伴的需要,该实验也过了。实验所用的软件资源/测试电路也全部开放,地址在MOOC中国大学为:https://www.icourse163.org/learn/HUST-1205809816#/learn/announce附带实验测试,地址在Educode上为:https://www.educoder.net/shixuns/ckff6yv9/challenges光是给的Excel自生成电路表格就上了7个,再加上密密麻麻的电路图,各自安好吧整体框架该实验

    2022年10月13日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号