特别的时钟:上次那个时钟布局和计算有问题,重新修改一下,用JS创建180多个li标签,自动生成数字

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>特别的时钟</title>
</head>
<style>
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
        font-family: 'Poppins', sans-serif;
    }
    /* 首页样式开始 */
    /* CSS单位px、em、rem、vh、vw、vmin、vmax、%的区别:
    vw:1vw 等于视口宽度的1%,Vh:1vh 等于视口高度的1%
    视口宽度:指浏览器窗口的宽度,包括了浏览器的工具栏、地址栏、状态栏等。
    视口高度:指浏览器窗口的高度,包括了浏览器的工具栏、地址栏、状态栏等。
    百分比单位:相对于父元素的宽度或高度的百分比,如:width:50%;height:50%; 就是指父元素的宽度的50%。
    em单位:相对于当前元素的字体大小,如:font-size:1em; 就是指当前元素的字体大小。
    rem单位:相对于根元素html的字体大小,如:font-size:1rem; 就是指html的字体大小。
    vh、vw单位:相对于视口的高度和宽度的百分比,如:height:50vh;width:50vw; 就是指视口的高度的50%。
    vmin、vmax单位:相对于视口的最小高度和最大高度的百分比,如:height:50vmin;width:50vmax; 就是指视口的最小高度的50%。
    注意:vw、vh、vmin、vmax单位在不同的浏览器下可能有不同的效果,建议使用em、rem单位。 */
    .home_page {
        position: fixed;
        top: 2%;
        left: 20%;
        background-color: #4CAF50;
        color: white;
        border: 1px solid #4CAF50;
        font-size: 20px;
        margin: 20px;
        padding: 2px 5px;
        border-radius: 5px;
        text-decoration: none;
        &:hover {
            background-color: #e4f904;
            color: rgb(245, 5, 5);
        }
    }
    /* 首页样式结束 */
    body {
        background: radial-gradient(at 60% 0%, #5190b0, #235746);
    }
    /*************************特别时钟*******************************/
    .times {
        min-height: 100vh;
    }
    #year {
        font-size: 6rem;
        color: #fed330;
        /*模糊 filter: blur(0.5vw); */
        z-index: 1;
    }
    .main {
        background: #000000;
        position: absolute;
        border-radius: 1vw;
        left: 25vw;
        top: 10vh;
        font-size: 3vw;
        position: absolute;
        color: rgb(252, 4, 4);
        display: flex;
        justify-content: center;
        align-items: center;
        background-image: linear-gradient(to top left,
                rgba(0, 0, 0, 0.2),
                rgba(0, 0, 0, 0.2) 30%,
                rgba(0, 0, 0, 0));
        box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
            inset -4px -4px 5px rgba(0, 0, 0, 0.6);
        border: 0px solid black;
        span {
            width: 4vw;
            height: 90vh;
            border: 2px solid white;
            position: relative;
            border-radius: 1vw 1vw 0 0;
        }
        .wan {
            width: 1vw;
        }
        .wai {
            width: 5vw;
            left: 1vw;
        }
        .wan,
        .wai {
            position: relative;
            top: -6vh;
            border: none;
        }
        span::before {
            /*  直接注释掉这行  content: attr(datatext);就不可以显示时间数字哦 */
            content: attr(datatext);
            position: absolute;
            top: -60px;
            left: 3px;
        }
        span::after {
            content: "";
            position: absolute;
            width: 100%;
            bottom: 0;
            border-radius: 1vw 1vw 0 0;
            /* filter: blur(12px); */
            transition: 1s linear;
            height: var(--s);
            background-image: linear-gradient(to top left,
                    rgba(0, 0, 0, 0.2),
                    rgba(0, 0, 0, 0.2) 30%,
                    rgba(0, 0, 0, 0));
            box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
                inset -4px -4px 5px rgba(0, 0, 0, 0.6);
            border: 0px solid black;
        }
        #month::after {
            background: #8854d0;
        }
        #day::after {
            background: #3867d6;
        }
        #hour::after {
            background: #20bf6b;
        }
        #min::after {
            background: #d1d8e0;
        }
        #sec::after {
            background: #ff0101;
        }
    }
    /* *  绘制时刻表线 *********************************/
    .list {
        font-size: 1rem;
        position: relative;
        width: 80%;
        height: 100%;
        list-style: none;
        /* padding-inline-start: 0px; */
        display: flex;
        justify-content: space-between;
        flex-direction: column-reverse;
        /* 居中 */
        margin: auto;
        /* 文本居中 */
        text-align: center;
        z-index: 999999;
        counter-reset: num -1;
    }
    .list>li {
        width: 3vw;
        height: 0.2vh;
        background: #000000;
        color: #000000;
        position: relative;
        margin: 0.9vh 0 0 0;
    }
    .list>li:before {
        /* counter-increment: num 2; */
        counter-increment: num 1;
        content: counter(num);
        position: relative;
        top: 0vh;
        left: 0vw;
        /* content: '01'; */
        /* 个位补零 */
        content: counter(num, decimal-leading-zero);
        /* transform: translate(1vh, 5vh);  */
    }
#hour-list li:before {
   top: 2vh;
}
    /* *  绘制时刻表线 ***********结束**********************/
</style>
<body>
    <!-- --------------特别的时钟----------------------------- -->
    <div class="times">
        <a href="file:///C:\Users\90917\Desktop\备忘录.html" class="home_page">首页</a>
        <div id="year">
            nan
        </div>
        <div class="main">
            <span id="month" class="rile">
                <ul id="month-list" class="list "></ul>
            </span>
            <span class="wai">月</span>
            <span id="day" class="rile">
                <ul id="day-list" class="list "></ul>
            </span>
            <span class="wai">日</span>
            <span id="hour" class="rile">
                <ul id="hour-list" class="list "></ul>
            </span>
            <span class="wan">:</span>
            <span id="min" class="rile">
                <ul id="min-list" class="list "></ul>
            </span>
            <span class="wan">:</span>
            <span id="sec" class="rile">
                <ul id="sec-list" class="list "></ul>
            </span>
        </div>
    </div>
    <!-- ---------------特别的时钟---结束-------------------------- -->
</body>
<script>
    /*************************特别的时钟*******************************/
    var monbox = document.getElementById("month")
    var daybox = document.getElementById("day")
    var hourbox = document.getElementById("hour")
    var minbox = document.getElementById("min")
    var secbox = document.getElementById("sec")
    var yeardiv = document.getElementById("year")
    var count = 0
    function clock() {
        var d = new Date()
        var mon = d.getMonth()
        var day = d.getDate()
        var hour = d.getHours()
        var min = d.getMinutes()
        var sec = d.getSeconds()
        var year = d.getFullYear()
        // console.log(mon, day, hour, min, sec, year)
        var W = "星期" + "日一二三四五六".charAt(new Date().getDay());
        monbox.style.setProperty('--s', String((mon + 1) / 12 * 100) + '%') //生成填充背景颜色的比例
        monbox.setAttribute('datatext', ("0" + (mon + 1)).slice(-2)) //生成时间日期的具体文字,个位的数字在前面补0
        var allday = new Date(year, mon + 1, 0).getDate() //计算当前月份有多少天(28,29,30,31)
        daybox.style.setProperty('--s', String(day / allday * 100) + '%')
        daybox.setAttribute('datatext', ("0" + (day)).slice(-2))
        hourbox.style.setProperty('--s', String(hour / 24 * 100) + '%')
        // console.log(hour)
        hourbox.setAttribute('datatext', ("0" + (hour)).slice(-2))
        // minbox.style.setProperty('--s', String((min + 1) / 60 * 100) + '%')
        minbox.style.setProperty('--s', String(min / 60 * 100) + '%')
        minbox.setAttribute('datatext', ("0" + (min)).slice(-2))
        secbox.style.setProperty('--s', String((sec + 1) / 60 * 100) + '%')
        secbox.setAttribute('datatext', ("0" + (sec)).slice(-2))
        yeardiv.innerText = year + '年' + '\n' + '(' + W + ')'// 计算年份数字
    }
    setInterval(clock, 100)
    /*************************特别的时钟**结束*****************************/
    /* *  绘制时刻表线 */
    // 定义13个li元素 月份
    var monthul = document.getElementById('month-list');
    for (var i = 0; i < 13; i++) {
        var li = document.createElement('li');
        monthul.appendChild(li);
    }
    //定义24个li元素 for24小时
    var hourul = document.getElementById('hour-list');
    for (var i = 0; i < 24; i++) {
        var li = document.createElement('li');
        hourul.appendChild(li);
    }
    // 定义60个li元素 for 60分钟 60秒
    var liArr = [];
    var liArr1 = [];
    for (var i = 0; i < 60; i++) {
        var li = document.createElement('li');
        var li1 = document.createElement('li');
        liArr.push(li);
        liArr1.push(li1);
    }
    // 将liArr中的元素添加到ul中
    var ul1 = document.getElementById('min-list');
    for (var i = 0; i < liArr1.length; i++) {
        ul1.appendChild(liArr1[i]);
    }
    var ul = document.getElementById('sec-list');
    for (var i = 0; i < liArr.length; i++) {
        ul.appendChild(liArr[i]);
    }
    /*    // 定义allday个li元素 for allday天 //计算当前月份有多少天(28,29,30,31)
     var dayul = document.getElementById('day-list');
        var allday = new Date(2024, 4, 0).getDate() 
        for (var i = 0; i < allday + 1; i++) {
            var li = document.createElement('li');
            dayul.appendChild(li);
        } */
    function createDayList(ulId, year, month) {
        var dayUl = document.getElementById(ulId);
        var allDays = new Date(year, month, 0).getDate();
        for (var i = 0; i < allDays + 1; i++) {
            var li = document.createElement('li');
            dayUl.appendChild(li);
        }
    }
    createDayList('day-list', 2024, 4);
</script>
</html>

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Github Action Bot 开发教程

Github Action Bot 开发教程 在使用 Github 时&#xff0c;你可能在一些著名的开源项目&#xff0c;例如 Kubernetes&#xff0c;Istio 中看到如下的一些评论&#xff1a; /lgtm /retest /area bug /assign xxxx ...等等&#xff0c;诸如此类的一些功能性评论。在这些评论出现…

合泰杯(HT32F52352)RTC的应用(计时)--->掉电不丢失VBAT(代码已经实现附带源码)

摘要 在HT32F52352合泰单片机开发中&#xff0c;rtc在网上还是挺少人应用的&#xff0c;找了很久没什么资料&#xff0c;现在我根据手册和官方的代码进行配置理解。 RTC在嵌入式单片机中是一个很重要的应用资源。 记录事件时间戳&#xff1a;RTC可以记录事件发生的精确时间&…

踏上R语言之旅:解锁数据世界的神秘密码(四)

文章目录 前言一、多元线性回归1.多元线性回归模型的建立2.多元线性回归模型的检验 二、多元线性相关分析1.矩阵相关分析2.复相关分析 三、回归变量的选择方法1.变量选择准则2.变量选择的常用准则3.逐步回归分析 总结 前言 回归分析研究的主要对象是客观事物变量间的统计关系。…

Macs Fan Control Pro for mac激活版:macOS 平台的风扇控制软件

Macs Fan Control Pro是一款用于 macOS 平台的风扇控制软件&#xff0c;它允许用户监控和调整 Mac 电脑的风扇转速。以下是该软件的一些特点和功能&#xff1a; Macs Fan Control Pro for mac激活版下载 风扇监控&#xff1a;Macs Fan Control Pro 提供实时的风扇转速监控&…

vue+elementui(笔记)

vueelementui 表格 <div class"tableStyle"><el-table :data"pointsSettingsTableData" style"width: 70%" :stripe"true" size"mini"header-cell-class-name"headerClassName" :cell-style"{ tex…

Llama3 在线试用与本地部署

美国当地时间4月18日&#xff0c;Meta 开源了 Llama3 大模型&#xff0c;目前开源版本为 8B 和 70B 。Llama 3 模型相比 Llama 2 具有重大飞跃&#xff0c;并在 8B 和 70B 参数尺度上建立了 LLM 模型的新技术。由于预训练和后训练的改进&#xff0c;Llama3 模型是目前在 8B 和 …

应急响应-webserver

一.环境准备 1.镜像文件 2.任务说明 3.用户密码 二.应急响应 环境启动 1.导入镜像文件并修改网络 2.远程连接 ss -ntl #列出系统中运行的所有进程 用远程连接工具连接 任务一 Linux 服务日志默认存储在/var/log目录下 默认网站根目录&#xff1a;/var/www/html/ 1.查看…

【Doris系列】 SQL 多方言兼容

目前 Doris 引擎提供了两种方式实现对 sql 多方言的支持。即&#xff0c;提交指定方言的 sql&#xff0c;Doris 可以成功解析&#xff0c;并返回正确的计算结果。本文就简单来测试验证下这两种方式的效果。 一、Doris Sql Convertor Doris 官方提供了一个 sql convertor 工具…

ES全文检索支持拼音和繁简检索

ES全文检索支持拼音和繁简检索 1. 实现目标2. 引入pinyin插件2.1 编译 elasticsearch-analysis-pinyin 插件2.2 安装拼音插件 3. 引入ik分词器插件3.1 已有作者编译后的包文件3.2 只有源代码的版本3.3 安装ik分词插件 4. 建立es索引5.测试检索6. 繁简转换 1. 实现目标 ES检索时…

力扣33. 搜索旋转排序数组

Problem: 33. 搜索旋转排序数组 文章目录 题目描述思路复杂度Code 题目描述 思路 1.初始化左右指针&#xff1a;首先&#xff0c;定义两个指针left和right&#xff0c;分别指向数组的开始和结束位置。 2.计算中间值&#xff1a;在left和right之间找到中间位置mid。 3.比较中间值…

使用Python爬取淘宝商品并做数据分析

使用Python爬取淘宝商品并做数据分析&#xff0c;可以按照以下步骤进行操作&#xff1a; 确定需求&#xff1a;确定要爬取的淘宝商品的种类、数量、关键词等信息。 编写爬虫程序&#xff1a;使用Python编写爬虫程序&#xff0c;通过模拟浏览器请求&#xff0c;获取淘宝商品的页…

ffmpeg音视频裁剪

音视频裁剪&#xff0c;通常会依据时间轴为基准&#xff0c;从某个起始点到终止点的音视频截取出来&#xff0c;当然音视频文件中存在多路流&#xff0c;所对每一组流进行裁剪 基础概念&#xff1a; 编码帧的分类&#xff1a; I帧(Intra coded frames): 关键帧&#xff0c;…

SpringCloud学习笔记(一)微服务介绍、服务拆分和RestTemplate远程调用、Eureka注册中心

文章目录 1 认识微服务1.1 单体架构1.2 分布式架构1.3 微服务1.4 SpringCloud1.5 总结 2 服务拆分与远程调用2.1 服务拆分原则2.2 服务拆分示例2.2.1 搭建项目2.2.2 创建数据库和表2.2.3 实现远程调用2.2.3.1 需求描述2.2.3.2 注册RestTemplate2.2.3.3 实现远程调用 2.2.4 提供…

【网络】HTTP协议

文章目录 一. 认识 URL1. URL 初识2. URL 的组成① 协议名称② 域名③ 端口号④ 文件路径⑤ 查询参数 3. URL中的字符3.1 合法字符3.2 保留字符3.3 其他字符3.4 URL中的字符总结 二. HTTP 协议1. HTTP 介绍2. 请求报文2.1 请求报文的格式2.2 请求方法介绍2.3 请求报文中常见的 …

【LeetCode:1103. 分糖果 II + 模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

CUDA架构介绍与设计模式解析

文章目录 **CUDA**架构介绍与设计模式解析**1** CUDA 介绍CUDA发展历程CUDA主要特性CUDA系统架构CUDA应用场景编程语言支持CUDA计算过程线程层次存储层次 **2** CUDA 系统架构分层架构并行计算模式生产-消费者模式工作池模式异步编程模式 **3** CUDA 中的设计模式工厂模式策略模…

电脑技巧:推荐一款非常好用的媒体播放器PotPlayer

目录 一、 软件简介 二、功能介绍 2.1 格式兼容性强 2.2 高清播放与硬件加速 2.3 自定义皮肤与界面布局 2.4 多音轨切换与音效增强 2.5 字幕支持与编辑 2.6 视频截图与录像 2.7 网络流媒体播放 三、软件特色 四、使用技巧 五、总结 一、 软件简介 PotPlayer播放器 …

【MATLAB源码-第201期】基于matlab的黏菌群优化算法(SMA)无人机三维路径规划,输出做短路径图和适应度曲线

操作环境&#xff1a; MATLAB 2022a 1、算法描述 黏菌优化算法&#xff08;Slime Mould Algorithm, SMA&#xff09;是一种新颖的启发式优化方法&#xff0c;其灵感来源于自然界中的真菌——黏菌。这种算法模拟了黏菌在寻找食物时的行为和网络形成策略。在本文中&#xff0c…

【Linux】yum、vim

&#x1f308;个人主页&#xff1a;秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343&#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/qinjh_/category_12625432.html 目录 Linux 软件包管理器 yum 什么是软件包 查看软件包 如何安装软件 如何卸载软…

网络安全的重要性及人才需求

安全现在是大趋势&#xff0c;说是铁饭碗也不为过&#xff0c;就业前景好&#xff0c;方向多比传统计算机行业就业舒服点。但是大厂依然是985&#xff0c;211的天下&#xff0c;是双非能进大厂的&#xff0c;只是凤毛麟角。前提是你的能力可以让公司忽略你的学历。 以2023年为…