FineReport 倒计时特效

1、代码准备

将下面的代码生成对应文件
在这里插入图片描述

1.1、zzsc.js

这段代码是一个JavaScript计时器脚本,用于计算从当前时间到第二天午夜(即0点)之间的时间差,并将这个时间差显示在网页上的特定元素中。具体来说,它会实时更新页面上指定的HTML元素(通过类名.se-txt选择),以显示剩余的天数、小时数、分钟数和秒数。

// 当文档加载完成时执行以下函数
$(document).ready(function () {var oDate = new Date(); // 获取当前日期和时间var nowTime = oDate.getTime(); // 获取当前时间的毫秒数oDate.setDate(oDate.getDate() + 1); // 将日期设置为明天var targetDate = new Date(oDate.toLocaleDateString()); // 获取明天午夜0点的日期对象run(targetDate); // 开始计时器
});// 计时器主函数
function run(enddate) {getDate(enddate); // 初始化时间显示setInterval("getDate('" + enddate + "')", 500); // 每500毫秒(0.5秒)更新一次时间显示
}// 计算并显示剩余时间
function getDate(enddate) {var oDate = new Date(); // 获取当前日期和时间var nowTime = oDate.getTime(); // 获取当前时间的毫秒数var enddate = new Date(enddate); // 将传入的字符串转换为日期对象var targetTime = enddate.getTime(); // 获取目标时间的毫秒数var second = Math.floor((targetTime - nowTime) / 1000); // 计算从现在到目标时间的总秒数var day = Math.floor(second / (24 * 60 * 60)); // 计算剩余的天数second %= (24 * 60 * 60); // 取模,得到剩余的秒数var hour = Math.floor(second / 3600); // 计算剩余的小时数second %= 3600; // 取模,得到剩余的秒数var minute = Math.floor(second / 60); // 计算剩余的分钟数second %= 60; // 取模,得到剩余的秒数var spanH = $('.se-txt')[0]; // 获取第一个 .se-txt 元素(小时)var spanM = $('.se-txt')[1]; // 获取第二个 .se-txt 元素(分钟)var spanS = $('.se-txt')[2]; // 获取第三个 .se-txt 元素(秒数)// 检查元素是否存在if (spanH != null && spanM != null && spanS != null) {spanH.innerHTML = tow(hour); // 更新小时数spanM.innerHTML = tow(minute); // 更新分钟数spanS.innerHTML = tow(second); // 更新秒数}
}// 格式化时间,确保时间显示为两位数
function tow(n) {return n >= 0 && n < 10 ? '0' + n : '' + n;
}

详细说明

  • 初始化部分
    • $(document).ready(function () { ... });:当文档加载完成后执行的函数。
    • var oDate = new Date();:获取当前日期和时间。
    • var nowTime = oDate.getTime();:获取当前时间的毫秒数。
    • oDate.setDate(oDate.getDate() + 1);:将日期设置为明天。
    • var targetDate = new Date(oDate.toLocaleDateString());:获取明天午夜0点的日期对象。
    • run(targetDate);:调用 run 函数开始计时器。
  • 计时器主函数
    • function run(enddate) { ... }:定义 run 函数,接收目标日期作为参数。
    • getDate(enddate);:初始化时间显示。
    • setInterval("getDate('" + enddate + "')", 500);:每500毫秒(0.5秒)调用一次 getDate 函数,更新时间显示。
  • 计算并显示剩余时间
    • function getDate(enddate) { ... }:定义 getDate 函数,计算并显示剩余时间。
    • var oDate = new Date();:获取当前日期和时间。
    • var nowTime = oDate.getTime();:获取当前时间的毫秒数。
    • var enddate = new Date(enddate);:将传入的字符串转换为日期对象。
    • var targetTime = enddate.getTime();:获取目标时间的毫秒数。
    • var second = Math.floor((targetTime - nowTime) / 1000);:计算从现在到目标时间的总秒数。
    • var day = Math.floor(second / (24 * 60 * 60));:计算剩余的天数。
    • second %= (24 * 60 * 60);:取模,得到剩余的秒数。
    • var hour = Math.floor(second / 3600);:计算剩余的小时数。
    • second %= 3600;:取模,得到剩余的秒数。
    • var minute = Math.floor(second / 60);:计算剩余的分钟数。
    • second %= 60;:取模,得到剩余的秒数。
    • var spanH = $('.se-txt')[0];:获取第一个 .se-txt 元素(小时)。
    • var spanM = $('.se-txt')[1];:获取第二个 .se-txt 元素(分钟)。
    • var spanS = $('.se-txt')[2];:获取第三个 .se-txt 元素(秒数)。
    • if (spanH != null && spanM != null && spanS != null) { ... }:检查这些元素是否存在。
    • spanH.innerHTML = tow(hour);:更新小时数。
    • spanM.innerHTML = tow(minute);:更新分钟数。
    • spanS.innerHTML = tow(second);:更新秒数。
  • 格式化时间
    • function tow(n) { ... }:定义 tow 函数,确保时间显示为两位数。
    • return n >= 0 && n < 10 ? '0' + n : '' + n;:如果数字小于10,则在前面加一个0。

1.2、zzsc.css

这段CSS代码定义了一个倒计时组件的样式,包括背景颜色、文字样式、位置布局等

/* 重置所有元素的默认边距和内边距 */
* {margin: 0;padding: 0;
}/* 定义倒计时容器的样式 */
.se-kl {width: 190px; /* 容器宽度 */height: 275px; /* 容器高度 */background-color: #e83632; /* 背景颜色 */position: relative; /* 相对定位,以便内部元素可以使用绝对定位 */
}/* 定义中文标题的样式 */
.se-cn {position: absolute; /* 绝对定位 */top: 42px; /* 距离顶部42px */left: 0; /* 距离左边0px */width: 100%; /* 宽度占满父容器 */text-align: center; /* 文字居中对齐 */font-size: 28px; /* 调小字体大小,适应更长的文本 */color: #fff; /* 字体颜色 */background-color: #2f3430; /* 背景颜色 */padding: 10px 0; /* 上下内边距 */border-radius: 5px; /* 圆角 */box-shadow: 0 2px 5px rgba(0, 0, 0, 0.3); /* 阴影效果 */line-height: 1.2; /* 调整行高,使文字更紧凑 */
}/* 定义英文标题的样式 */
.se-en {position: absolute; /* 绝对定位 */top: 90px; /* 距离顶部90px */left: 0; /* 距离左边0px */width: 100%; /* 宽度占满父容器 */text-align: center; /* 文字居中对齐 */font-size: 20px; /* 字体大小 */color: rgba(255, 255, 255, 0.5); /* 字体颜色,半透明白色 */
}/* 定义图标的位置和样式 */
.se-io {width: 20px; /* 图标宽度 */height: 33px; /* 图标高度 */position: absolute; /* 绝对定位 */background: url(../seckill.png) no-repeat; /* 背景图片路径,不重复 */background-position: -32.5px 0; /* 背景图片的位置 */background-size: 52.5px 40px; /* 背景图片的尺寸 */left: 85px; /* 距离左边85px */top: 126px; /* 距离顶部126px */display: block; /* 显示为块级元素 */
}/* 定义倒计时信息的样式 */
.se-info {position: absolute; /* 绝对定位 */top: 170px; /* 距离顶部170px */text-align: center; /* 文字居中对齐 */width: 100%; /* 宽度占满父容器 */font-size: 16px; /* 字体大小 */color: #fff; /* 字体颜色 */
}/* 定义倒计时区域的样式 */
.se-count {position: absolute; /* 绝对定位 */top: 212px; /* 距离顶部212px */left: 30px; /* 距离左边30px */height: 40px; /* 高度 */
}/* 定义天数显示的样式(默认隐藏) */
.se-day {display: none; /* 默认隐藏 */
}/* 定义小时、分钟和秒数显示的公共样式 */
.se-hour,
.se-min,
.se-sec {position: relative; /* 相对定位 */background-color: #2f3430; /* 背景颜色 */width: 40px; /* 宽度 */height: 40px; /* 高度 */float: left; /* 左浮动,使它们水平排列 */text-align: center; /* 文字居中对齐 */line-height: 40px; /* 行高,使文字垂直居中 */margin-right: 5px; /* 右边距 */
}/* 定义时间数字的样式 */
.se-txt {font-size: 20px; /* 字体大小 */font-weight: bold; /* 加粗字体 */color: #fff; /* 字体颜色 */
}/* 定义时间数字前的分割线 */
.se-txt:before {content: ""; /* 内容为空 */display: block; /* 显示为块级元素 */position: absolute; /* 绝对定位 */top: 50%; /* 距离顶部50% */left: 0; /* 距离左边0px */width: 100%; /* 宽度占满父容器 */height: 1px; /* 高度1px */background-color: #e83632; /* 分割线颜色 */
}

详细说明

  • 全局重置
    • { margin: 0; padding: 0; }:重置所有元素的默认边距和内边距,确保布局的一致性。
  • 倒计时容器
    • .se-kl:定义了倒计时容器的基本样式,包括宽度、高度、背景颜色和相对定位。
  • 中文标题
    • .se-cn:定义了中文标题的样式,包括绝对定位、距离顶部和左边的距离、宽度、文字居中对齐、字体大小和颜色。
  • 英文标题
    • .se-en:定义了英文标题的样式,与中文标题类似,但字体颜色为半透明白色。
  • 图标
    • .se-io:定义了图标的样式,包括宽度、高度、绝对定位、背景图片路径、背景图片位置和尺寸、距离左边和顶部的距离,以及显示为块级元素。
  • 倒计时信息
    • .se-info:定义了倒计时信息的样式,包括绝对定位、距离顶部的距离、文字居中对齐、宽度、字体大小和颜色。
  • 倒计时区域
    • .se-count:定义了倒计时区域的样式,包括绝对定位、距离顶部和左边的距离,以及高度。
  • 天数显示
    • .se-day:定义了天数显示的样式,默认隐藏。
  • 小时、分钟和秒数显示
    • .se-hour, .se-min, .se-sec:定义了小时、分钟和秒数显示的公共样式,包括相对定位、背景颜色、宽度、高度、左浮动、文字居中对齐、行高和右边距。
  • 时间数字
    • .se-txt:定义了时间数字的样式,包括字体大小、加粗和颜色。
  • 时间数字前的分割线
    • .se-txt:before:定义了时间数字前的分割线,包括内容为空、显示为块级元素、绝对定位、距离顶部50%、宽度占满父容器、高度1px和背景颜色。

1.3、HTML代码

这段HTML代码定义了一个倒计时组件的结构,结合之前的CSS和JavaScript代码,可以实现一个动态显示的倒计时效果。

<!-- 倒计时容器 -->
<div class="se-kl"> <!-- 中文标题 --><div class="se-cn">双十一倒计时</div> <!-- 英文标题 --><div class="se-en">COUNT DOWN</div> <!-- 图标 --><i class="se-io"></i> <!-- 倒计时信息 --><div class="se-info">距离结束还剩</div> <!-- 倒计时区域 --><div class="se-count"> <!-- 天数显示(默认隐藏) --><div class="se-day"></div><!-- 小时显示 --><div class="se-hour"><span class="se-txt">00</span></div><!-- 分钟显示 --><div class="se-min"><span class="se-txt">00</span></div><!-- 秒数显示 --><div class="se-sec"><span class="se-txt">00</span></div></div> 
</div>

详细说明

  • 倒计时容器
    • <div class="se-kl"> ... </div>:这是整个倒计时组件的外层容器,包含了所有的子元素。它的样式在CSS中已经定义,包括宽度、高度、背景颜色和相对定位。
  • 中文标题
    • <div class="se-cn">双十一倒计时</div>:这是一个包含中文标题的<div>元素,样式在CSS中定义,包括绝对定位、距离顶部和左边的距离、宽度、文字居中对齐、字体大小和颜色。
  • 英文标题
    • <div class="se-en">COUNT DOWN</div>:这是一个包含英文标题的<div>元素,样式在CSS中定义,包括绝对定位、距离顶部和左边的距离、宽度、文字居中对齐、字体大小和半透明的白色颜色。
  • 图标
    • <i class="se-io"></i>:这是一个包含图标的<i>元素,样式在CSS中定义,包括宽度、高度、绝对定位、背景图片路径、背景图片位置和尺寸、距离左边和顶部的距离,以及显示为块级元素。
  • 倒计时信息
    • <div class="se-info">距离结束还剩</div>:这是一个包含倒计时信息的<div>元素,样式在CSS中定义,包括绝对定位、距离顶部的距离、文字居中对齐、宽度、字体大小和颜色。
  • 倒计时区域
    • <div class="se-count"> ... </div>:这是倒计时的具体显示区域,样式在CSS中定义,包括绝对定位、距离顶部和左边的距离,以及高度。
  • 天数显示
    • <div class="se-day"></div>:这是一个用于显示天数的<div>元素,默认情况下是隐藏的(在CSS中定义为 display: none;)。
  • 小时显示
    • <div class="se-hour"><span class="se-txt">00</span></div>:这是一个用于显示小时的<div>元素,包含一个<span>子元素,用于显示具体的小时数。样式在CSS中定义,包括相对定位、背景颜色、宽度、高度、左浮动、文字居中对齐、行高和右边距。<span>元素的样式也定义了字体大小、加粗和颜色。
  • 分钟显示
    • <div class="se-min"><span class="se-txt">00</span></div>:这是一个用于显示分钟的<div>元素,包含一个<span>子元素,用于显示具体的分钟数。样式与小时显示类似。
  • 秒数显示
    • <div class="se-sec"><span class="se-txt">00</span></div>:这是一个用于显示秒数的<div>元素,包含一个<span>子元素,用于显示具体的秒数。样式与小时显示类似。

2、报表内容

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、结果

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】编辑器vim 与 编译器gcc/g++

目录 一、编辑器vim&#xff1a; 1、对vim初步理解&#xff1a; 2、vim的模式&#xff1a; 3、进入与退出&#xff1a; 4、vim命令模式下的指令集&#xff1a; 移动光标&#xff1a; 删除&#xff1a; cv&#xff1a; 撤销&#xff1a; 其他&#xff1a; 5、vim底行模…

虚拟机 Ubuntu 扩容

文章目录 一、Vmware 重新分配 Ubuntu 空间二、Ubuntu 扩容分区 一、Vmware 重新分配 Ubuntu 空间 先打开 Vmware &#xff0c;选择要重新分配空间的虚拟机 点击 编辑虚拟机设置 &#xff0c;再点击 硬盘 &#xff0c;再点击 扩展 选择预计扩展的空间&#xff0c;然后点击 扩展…

【搜索引擎】俄罗斯搜索引擎yandex

俄罗斯搜索引擎yandex 1997年&#xff0c;俄罗斯搜索引擎Yandex&#xff08;俄语意为&#xff1a;语言目录&#xff09;首次上线&#xff0c;已发展成为全球第四大搜索引擎和第二大非英语搜索引擎 https://yandex.com/

【深度学习】CrossEntropyLoss需要手动softmax吗?

【深度学习】CrossEntropyLoss需要手动softmax吗&#xff1f; 问题&#xff1a;CrossEntropyLoss需要手动softmax吗&#xff1f;答案&#xff1a;不需要官方文档代码解释 问题&#xff1a;CrossEntropyLoss需要手动softmax吗&#xff1f; 之前用 pytorch 实现自己的网络时&…

Uniapp的H5以及App不支持后端传FormData类型参数的解决方案

在uniapp中不支持FormData的传参&#xff0c;这就很恶心&#xff1b;如果强行传的话会提示&#xff0c;请求失败的报错信息。 因为后端必须要FormData类型的传参&#xff0c;所以在查阅一系列方案后&#xff0c;有一种解决办法可以完美解决。 代码&#xff1a; init() {const…

img 标签的 object-fit 属性

设置图片固定尺寸后&#xff0c;可以通过 object-fit 属性调整图片展示的形式 object-fit: contain; 图片的长宽比不变&#xff0c;相应调整大小。 object-fit: cover; 当图片的长宽比与容器的长宽比不一致时&#xff0c;会被裁切。 object-fit: fill; 图片不再锁定长宽…

机器人领域中的scaling law:通过复现斯坦福机器人UMI——探讨数据规模化定律(含UMI的复现关键)

前言 在24年10.26/10.27两天&#xff0c;我司七月在线举办的七月大模型机器人线下营时&#xff0c;我们带着大家一步步复现UMI「关于什么是UMI&#xff0c;详见此文&#xff1a;UMI——斯坦福刷盘机器人&#xff1a;从手持夹持器到动作预测Diffusion Policy(含代码解读)」&…

scala---10.30

val、var package com_1030class Person {var name:String"rose"def sum(n1:Int,n2:Int):Int{n1n2} } object Person{def main(args: Array[String]): Unit {//创建person对象var personnew Person()println(person.sum(10,20))//30println(person.name)person.nam…

Oracle与SQL Server的语法区别

1&#xff09;日期和日期转换函数。 SQL: SELECT A.*, CASE WHEN NVL(PAA009,) OR PAA009 >Convert(Varchar(10), SYSDATE,120) THEN Y ELSE N END AS ActiveUser FROM POWPAA A WHERE PAA001admin or PAA002admin Oracle: SELECT A.*, CASE WHEN NVL(PAA009,) or PAA009&…

让Chrome⽀持⼩于12px 的⽂字⽅式有哪些?区别?

让Chrome⽀持⼩于12px 的⽂字⽅式有哪些&#xff1f;区别&#xff1f; 1、背景 Chrome 中⽂版浏览器会默认设定⻚⾯的最⼩字号是12px&#xff0c;英⽂版没有限制 原由 Chrome 团队认为汉字⼩于12px就会增加识别难度 • 中⽂版浏览器 与⽹⻚语⾔⽆关&#xff0c;取决于⽤户在C…

慢即是快,少即是多

慢即是快 “慢即是快”是一种强调质量而非速度的哲学或策略。以下是它的一些应用和解释&#xff1a; 1. 精准与质量&#xff1a; - 通过慢工出细活&#xff0c;确保任务或项目的每个步骤都高质量完成&#xff0c;避免因匆忙带来的错误和返工。最终&#xff0c;虽然过程看似…

Hadoop期末复习(完整版)

前言&#xff08;全部为语雀导出&#xff0c;个人所写&#xff0c;仅用于学习&#xff01;&#xff01;&#xff01;&#xff01;&#xff09; 复习之前我们要有目的性&#xff0c;明确考什么&#xff0c;不考什么。 对于hadoop来说&#xff0c;首先理论方面是跑不掉的&#x…

微信小程序中,点击视频,没有跳转播放,可能是因为没有在app.json中正确注册视频播放页面的路径

const customMethodMap {handlePreview(e) {const { item: { url } } e?.currentTarget?.datasetconsole.log(Clicked item URL:, url); // 输出URLconst type url.split(.)[url.split(.)?.length - 1]console.log(File type:, type); // 输出文件类型console.log(isDoc(…

Effective C++ 学习笔记二

Effective C 学习笔记二 文章目录 Effective C 学习笔记二别让异常逃离析构函数绝不在构造和析构的过程中调用virtual函数令operator 返回一个reference to *this在operator中处理"自我赋值"C四种转换 别让异常逃离析构函数 C 并不禁止析构函数吐出异常&#xff0c;…

python如何安装扩展包

1、扩展包 Python安装额外的扩展包&#xff0c;一般使用anconda进行管理。 1、1安装命令 一般我们在anconda中通过pip install 包名 的方式进行安装&#xff0c;不过由于这些包在国外下载&#xff0c;因此需要配置合适的镜像促使其下载更快。 1、2 镜像源配置 1、2、1 一次…

Manus在虚拟现实仿真模拟中的应用案例分享

Manus虚拟现实手套作为一种高精度的人机交互设备&#xff0c;在仿真模拟领域展现出了巨大的应用潜力。通过提供实时、准确的手指动作捕捉数据&#xff0c;Manus手套为多个行业带来了前所未有的仿真体验&#xff0c;推动了技术发展和应用创新。 技术特点 1. 高精度手指跟踪 Ma…

查缺补漏----关于指令执行的题型

建议写完2009年&#xff0c;以及2015年对应题再看&#xff1a; 对于指令的执行要注意下面两点&#xff0c;理解了之后&#xff0c;题目都是非常套路化的&#xff1a; &#xff08;1&#xff09;读/写主存的指令与其他指令的书写不太一样&#xff1a; 读主存: 地址--->MAR M…

【Android】Java开发语言规范

Java语言规范 命名风格 **类名&#xff1a;**使用 UpperCamelCase 风格&#xff0c;必须遵从驼峰形式&#xff0c;但以下情形例外&#xff1a;DO / BO / DTO / VO / AO&#xff0c;所有单词的首字母大写**方法名、参数名、成员变量、局部变量&#xff1a;**统一使用 lowerCam…

SpringBoot【实用篇】- 配置高级

文章目录 目标&#xff1a;1.ConfigurationProperties2.宽松绑定/松散绑定3. 常用计量单位绑定4.数据校验 目标&#xff1a; ConfigurationProperties宽松绑定/松散绑定常用计量单位绑定数据校验 1.ConfigurationProperties ConfigurationProperties 在学习yml的时候我们了解…

​Java面试经典 150 题.P13. 罗马数字转整数(012)​

本题来自&#xff1a;力扣-面试经典 150 题 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台https://leetcode.cn/studyplan/top-interview-150/ 题解&#xff1a; class Solution {public int romanToInt(String s) {int sum…