2021-07-30
2021/7/30 23:37:48
本文主要是介绍2021-07-30,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
倒计时的实现
倒计时是web开发中常见的组件, 请完成second和render两个函数, 完成倒计时的显示部分
1、 second函数的输入为整数, 返回 { day: Int, hour: Int, min: Int, second: Int }
2、 render函数的输入为second函数的输出, 将数据在页面对应的DOM元素上显示出来, 格式如html所示
3、 如果day为0, 隐藏对应的DOM元素, 否则显示( 请直接使用已经实现的css代码)
4、 数值不足两位, 前面补充0
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>倒计时实现</title> </head> <body> <span></span> <span></span> <span></span> <span></span> <script> function second(second) { //second是毫秒数 return { //结果返回一个包含天,时,分,秒的对象 day: Math.floor(second / 24 / 60 / 60 / 1000), hour: Math.floor(second / 60 / 1000 % 24), min: Math.floor(second / 60 / 1000 % 60), second: Math.floor(second / 1000 % 60) } } function render(data) { //data是second函数的输出结果作为参数传给render函数的 // console.log(data); let spanList = document.getElementsByTagName("span"); // 这里作判断:大于一天和不足一天的情况 if (data.day > 0) { // 天 spanList[0].innerText = (data.day < 9 ? "0" + data.day : data.day) + "天"; } else { spanList[0].classList.add("hide"); } // 注意,这里使用slice方法截取字符串(从倒数第二位开始截取,截两位),不然时、分、秒会出现如"012"这样的,显然不是我们要的! spanList[1].innerText = ("0" + data.hour).slice(-2) + ":"; // 时 spanList[2].innerText = ("0" + data.min).slice(-2) + ":"; // 分 spanList[3].innerText = ("0" + data.second).slice(-2); // 秒 } // 测试一下 setInterval(() => { let date = new Date(); let dateData = date.getTime(); //1970年至今的毫秒数 let date2 = new Date(); date2.setFullYear(2021, 11, 31); //设置年月日 date2.setHours(23, 59, 59); //设置时分秒 let date2Data = date2.getTime(); //1970年至2021年的毫秒数 let resultData = date2Data - dateData; //差值就是倒计时的时间 // 判断倒计时是否结束 if (resultData == 0) { return; } else { render(second(resultData)); } }, 1000); </script> </body> </html>
这篇关于2021-07-30的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign服务间调用学习入门
- 2024-12-27OpenFeign学习入门:轻松掌握微服务通信
- 2024-12-27OpenFeign学习入门:轻松掌握微服务间的HTTP请求
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门