赞
踩
- <!DOCTYPE html>
- <html lang="zh-CN">
-
- <head>
- <meta charset="UTF-8">
- <title>原神倒计时</title>
- <style>
- * {
- margin: 0;
- padding: 0;
- box-sizing: border-box;
- user-select: none;
-
- body {
- background: #0b1b2c;
- }
- }
-
- header {
- width: 100vw;
- height: 40px;
- display: flex;
- justify-content: space-between;
- align-items: center;
- background-color: #cbcbcb;
-
- /* logo */
- figure.logo {
- width: 262px;
- height: 50px;
- /* 缩小 */
- transform: scale(0.8);
- margin-top: 2px;
- margin-left: -15px;
- border-radius: 50%;
- background: #f30303;
- box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6),
- inset -4px -4px 5px rgba(0, 0, 0, 0.6);
- z-index: 99;
-
- figcaption {
- background: hsl(0, 0%, 0%);
- background-clip: text;
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
- font-weight: bold;
- box-shadow: inset 4px 4px 4px rgba(255, 255, 255, 0.6), inset -4px -4px 5px rgba(0, 0, 0, 0.6);
- letter-spacing: -3px;
- line-height: 45px;
- border-radius: 50%;
- font-size: 40px;
- width: 152px;
- }
-
- .my_name1 {
- text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.726);
- clip-path: polygon(0% 0%, 100% 0%, 100% 50%, 0% 50%);
- transform: translate(35%, 0%);
- }
-
- .my_name2 {
- text-shadow: 1px 1px 1px hsla(160, 100%, 37%, 0.555);
- clip-path: polygon(0% 50%, 100% 50%, 100% 100%, 0% 100%);
- transform: translate(35%, -93%);
- }
-
- img {
- width: 60px;
- height: 35px;
- border-radius: 50%;
- transition: transform 0.3s ease;
- position: absolute;
-
- &:hover {
- transform: scale(1.3);
- filter: drop-shadow(0 0 0.3em #ff0202);
- }
- }
-
- .kong {
- margin-top: 7px;
- margin-left: 200px;
- }
-
- .ying {
- top: 7px;
- margin-left: 2px;
- }
- }
-
- /* 时间 */
- time {
- background: -webkit-linear-gradient(315deg, #e1ff00 50%, #ff0000);
- background-clip: text;
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
- font-size: 1.5rem;
- font-weight: 900;
- text-shadow: 2px -1px 8px rgba(250, 80, 193, 0.323);
-
- sub {
- -webkit-text-fill-color: #cfd601;
- text-shadow: 1px 1px 1px #100000;
- font-size: 1rem;
- }
- }
-
- /* 全屏还原关闭按钮 */
- menu {
- display: flex;
-
- button {
- background: none;
- border: none;
- }
-
- img {
- width: 35px;
- margin-top: 5px;
- margin-right: 5px;
- cursor: pointer;
-
- &:hover {
- transform: scale(1.2);
- padding: 5px;
- background: #ffd000;
- }
- }
-
- button:nth-child(2) {
- display: none;
- /* 放大镜效果 */
- transform: scale(1.16);
- }
- }
- }
-
- main {
- display: flex;
- flex-direction: column;
- align-items: center;
-
- #countdownContainer {
- display: flex;
- flex-direction: column;
- align-items: center;
-
- button {
- font-size: 1.5rem;
- color: hsla(160, 100%, 37%, 0.63);
- text-shadow: 1px 1px 1px #100000;
- cursor: pointer;
- border-radius: 3px;
- /* background-color: #f30303; */
- border: none;
- margin: 5px;
- padding: 3px;
- }
-
- dialog {
- transform: translate(180%, 80%);
- }
-
- dialog::backdrop {
- /* 模糊背景 */
- backdrop-filter: blur(2px);
- }
- }
-
- table {
- border-collapse: collapse;
-
- th,
- td {
- text-align: center;
- padding: 8px;
- border: 1px solid #ddd;
- }
-
- th {
- background-color: #9f9e9e;
- }
-
- td {
- color: hsl(160, 100%, 37%);
- text-shadow: 1px 1px 1px #030303;
- }
- }
- }
- </style>
- </head>
-
- <body>
- <header>
- <!-- logo -->
- <figure class="logo">
- <a href="https://blog.csdn.net/lulei5153?spm=1011.2415.3001.5343" title="与妖为邻CSDN博客" target="_blank">
- <img class="kong" src="file:///D:/img/icon.ico" alt="与妖为邻">
- </a>
- <figcaption class="my_name1">与妖为邻</figcaption>
- <figcaption class="my_name2">与妖为邻</figcaption>
- <a href="file:///D:/web/html%E9%A6%96%E9%A1%B5/%E5%A4%87%E5%BF%98%E5%BD%95.html" class="home_page"
- title="首页" target="_blank">
- <img class="ying" src="file:///D:/img/ying.png" alt="与妖为邻">
- </a>
- </figure>
- <!-- 时间 -->
- <time datetime="2024-07-10" title="2024-07-10" id="dateTime">2024-07-10</time>
- <!-- 天气 -->
- <iframe class="tianqi" frameborder="0" width="280" height="36" scrolling="no" hspace="0"
- src="https://i.tianqi.com/?c=code&id=99">
- </iframe>
- <!-- 全屏还原关闭按钮 -->
- <menu>
- <button class="fullScreen" type="button"><img src="file:///D:/img/全屏.svg" alt="全屏"
- onclick="fullScreen()"></button>
- <button class="exitFullScreen" type="button"><img src="file:///D:/img/还原.svg" alt="还原"
- onclick="exitFullScreen()"></button>
- <button type="button"><img src="file:///D:/img/关闭.svg" alt="关闭" onclick="closeAll()"> </button>
- </menu>
- </header>
- <main>
- <div id="countdownContainer"></div>
- <table id="characterTable">
- <tr>
- <th>序号</th>
- <th>元素</th>
- <th>角色</th>
- <th>等级</th>
- <th>命座</th>
- <th>天赋</th>
- <th>备注</th>
- </tr>
- </table>
- </main>
- </body>
- <script>
- /* 现在时间*/
- var current_time = document.getElementById("dateTime");
- function showTime() {
- var now = new Date();
- var year = now.getFullYear();
- var month = ("0" + (now.getMonth() + 1)).slice(-2);
- var day = ("0" + now.getDate()).slice(-2);
- var hour = ("0" + now.getHours()).slice(-2);
- var min = ("0" + now.getMinutes()).slice(-2);
- var second = ("0" + now.getSeconds()).slice(-2);
- var week = [
- "星期日",
- "星期一",
- "星期二",
- "星期三",
- "星期四",
- "星期五",
- "星期六",
- ][now.getDay()];
- var time = `${year}-${month}-${day}<sub id='sub'>${week}</sub> ${hour}:${min}:${second}`;
- current_time.innerHTML = time;
- }
- showTime();
- setInterval(showTime, 1000);
- /* 现在时间 结束*/
- /* 全屏功能与关闭*/
- function fullScreen() {
- var elem = document.documentElement;
- if (elem.requestFullscreen) {
- elem.requestFullscreen();
- } else if (elem.mozRequestFullScreen) { // Firefox
- elem.mozRequestFullScreen();
- } else if (elem.webkitRequestFullscreen) { // Chrome, Safari and Opera
- elem.webkitRequestFullscreen();
- } else if (elem.msRequestFullscreen) { // IE/Edge
- elem.msRequestFullscreen();
- }
- }
- function exitFullScreen() {
- if (document.exitFullscreen) {
- document.exitFullscreen();
- } else if (document.mozCancelFullScreen) { // Firefox
- document.mozCancelFullScreen();
- } else if (document.webkitExitFullscreen) { // Chrome, Safari and Opera
- document.webkitExitFullscreen();
- } else if (document.msExitFullscreen) { // IE/Edge
- document.msExitFullscreen();
- }
- }
- // 获取全屏和还原按钮
- var fullScreenBtn = document.querySelector(".fullScreen");
- var exitFullScreenBtn = document.querySelector(".exitFullScreen");
- // 监听全屏和还原事件
- document.addEventListener("fullscreenchange", function () {
- if (document.fullscreenElement) {
- fullScreenBtn.style.display = "none";
- exitFullScreenBtn.style.display = "block";
- } else {
- fullScreenBtn.style.display = "block";
- exitFullScreenBtn.style.display = "none";
- }
- });
- // 关闭当前窗口
- function closeAll() {
- window.close();
- }
- /* 全屏功能与关闭 结束*/
- /* 倒计时功能渲染*/
- const countdownContainer = document.getElementById('countdownContainer');
- function createCountdownElement(id) {
- const button = document.createElement('button');
- button.textContent = `第${id}个倒计时`;
- button.id = `countdownElement${id}`;
- button.onclick = () => document.getElementById(`dialogCountdownElement${id}`).showModal();
- const dialog = document.createElement('dialog');
- dialog.id = `dialogCountdownElement${id}`;
- const form = document.createElement('form');
- form.method = 'dialog';
- const messageDiv = document.createElement('div');
- const messageLabel = document.createElement('label');
- messageLabel.textContent = '更改提示信息:';
- messageLabel.htmlFor = `message${id}`;
- const messageInput = document.createElement('input');
- messageInput.type = 'text';
- messageInput.id = `message${id}`;
- messageInput.value = '距离2024年国庆节还有:';
- messageDiv.appendChild(messageLabel);
- messageDiv.appendChild(messageInput);
- const targetDateDiv = document.createElement('div');
- const targetDateLabel = document.createElement('label');
- targetDateLabel.textContent = '更改目标日期:';
- targetDateLabel.htmlFor = `targetDate${id}`;
- const targetDateInput = document.createElement('input');
- targetDateInput.type = 'datetime-local';
- targetDateInput.id = `targetDate${id}`;
- targetDateDiv.appendChild(targetDateLabel);
- targetDateDiv.appendChild(targetDateInput);
- const closeButton = document.createElement('button');
- closeButton.type = 'submit';
- closeButton.textContent = '关闭';
- closeButton.style.display = 'block';
- closeButton.style.margin = '5px auto';
- form.appendChild(messageDiv);
- form.appendChild(targetDateDiv);
- form.appendChild(closeButton);
- dialog.appendChild(form);
- countdownContainer.appendChild(button);
- countdownContainer.appendChild(dialog);
- }
- for (let i = 1; i <= 4; i++) {
- createCountdownElement(i);
- }
- /* 倒计时功能渲染 结束*/
- /* 倒计时功能实现*/
- const countdownData = {
- 1: { message: 'message1', targetDate: 'targetDate1' },
- 2: { message: 'message2', targetDate: 'targetDate2' },
- 3: { message: 'message3', targetDate: 'targetDate3' },
- 4: { message: 'message4', targetDate: 'targetDate4' }
- };
- // 加载时从localStorage读取数据
- window.onload = function () {
- for (let id in countdownData) {
- const message = localStorage.getItem(countdownData[id].message);
- const targetDate = localStorage.getItem(countdownData[id].targetDate);
- if (message) {
- document.getElementById(countdownData[id].message).value = message;
- }
- if (targetDate) {
- document.getElementById(countdownData[id].targetDate).value = targetDate;
- }
- }
- };
- // 保存数据到localStorage
- function saveData(id) {
- const message = document.getElementById(countdownData[id].message).value;
- const targetDate = document.getElementById(countdownData[id].targetDate).value;
- localStorage.setItem(countdownData[id].message, message);
- localStorage.setItem(countdownData[id].targetDate, targetDate);
- }
- // 监听输入框的变化并保存数据
- for (let id in countdownData) {
- document.getElementById(countdownData[id].message).addEventListener('input', () => saveData(id));
- document.getElementById(countdownData[id].targetDate).addEventListener('input', () => saveData(id));
- }
- function showCountdown(id) {
- const message = document.getElementById(countdownData[id].message).value;
- const targetDateInput = document.getElementById(countdownData[id].targetDate);
- const targetDateValue = targetDateInput.value;
- const now = new Date();
- let targetDate;
- if (targetDateValue) {
- targetDate = new Date(targetDateValue);
- } else {
- targetDate = new Date(2024, 9, 1); // 默认值:2024年10月1日
- }
- const diff = targetDate - now;
- const days = Math.floor(diff / (1000 * 60 * 60 * 24));
- const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
- const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
- const seconds = Math.floor((diff % (1000 * 60)) / 1000);
- const countdownElement = document.getElementById(`countdownElement${id}`);
- countdownElement.innerHTML = `${message}${days}天${hours}小时${minutes}分${seconds}秒`;
- }
- for (let id in countdownData) {
- showCountdown(id);
- setInterval(() => showCountdown(id), 1000);
- }
- /* 倒计时功能实现 结束*/
- // 原神角色数据
- const data = [
- {
- "element": "火",
- characters: [
- {
- "role": "班尼特",
- "level": 90,
- "constellation": "5",
- "talent": "10-13-13",
- "note": "4宗室"
- },
- {
- "role": "霄宫",
- "level": 90,
- "constellation": "1",
- "talent": "10-10-10",
- "note": "五追忆"
- },
- {
- "role": "香菱",
- "level": 90,
- "constellation": "3",
- "talent": "1-7-12",
- "note": "五绝缘"
- },
- ]
- },
- {
- "element": "水",
- characters: [
- {
- "role": "夜兰",
- "level": 90,
- "constellation": "1",
- "talent": "10-10-10",
- "note": "五绝缘"
- },
- {
- "role": "珊瑚宫心海",
- "level": 90,
- "constellation": "0",
- "talent": "7-10-8",
- "note": "4海染"
- }
- ]
- },
- {
- "element": "风",
- characters: [
- {
- "role": "枫原万叶",
- "level": 90,
- "constellation": "1",
- "talent": "10-10-10",
- "note": "4翠绿"
- },
- {
- "role": "流浪者",
- "level": 90,
- "constellation": "0",
- "talent": "10-10-10",
- "note": "五沙上"
- }
- ]
- },
- {
- "element": "雷",
- characters: [
- {
- "role": "雷电将军",
- "level": 90,
- "constellation": "3",
- "talent": "10-10-13",
- "note": "五绝缘"
- },
- {
- "role": "刻晴",
- "level": 90,
- "constellation": "1",
- "talent": "1-1-1",
- "note": "无"
- },
- ]
- },
- {
- "element": "草",
- characters: [
- {
- "role": "纳西妲",
- "level": 90,
- "constellation": "0",
- "talent": "9-10-9",
- "note": "5深林"
- },
- {
- "role": "提纳里",
- "level": 70,
- "constellation": "2",
- "talent": "1-1-1",
- "note": "无"
- },
- ]
- },
- {
- "element": "冰",
- characters: [
- {
- "role": "七七",
- "level": 90,
- "constellation": "1",
- "talent": "9-10-9",
- "note": "五海染"
- },
- {
- "role": "迪奥娜",
- "level": 90,
- "constellation": "6",
- "talent": "1-9-9",
- "note": "2千岩2海染"
- }
- ]
- },
- {
- "element": "岩",
- characters: [
- {
- "role": "钟离",
- "level": 90,
- "constellation": "0",
- "talent": "9-10-10",
- "note": "五千岩"
- },
- {
- "role": "凝光",
- "level": 70,
- "constellation": "6",
- "talent": "1-4-4",
- "note": "无"
- }
- ]
- },
- ];
- // 获取页面上的表格元素
- const characterTable = document.getElementById("characterTable");
- // 初始化行号
- let row = 1;
- // 记录上一个元素
- let lastElement = null;
- // 记录元素的行跨度
- let elementRowSpan = 1;
- // 遍历数据
- for (let i = 0; i < data.length; i++) {
- const elementData = data[i];
- // 遍历每个元素的角色数据
- for (let j = 0; j < elementData.characters.length; j++) {
- const character = elementData.characters[j];
- const newRow = characterTable.insertRow();
- newRow.insertCell().textContent = row++;
- // 如果元素与上一个元素不同,则插入新的元素单元格,并设置行跨度
- if (elementData.element !== lastElement) {
- const elementCell = newRow.insertCell();
- elementCell.rowSpan = elementData.characters.length;
- elementCell.textContent = elementData.element;
- lastElement = elementData.element;
- }
- newRow.insertCell().textContent = character.role;
- newRow.insertCell().textContent = character.level;
- newRow.insertCell().textContent = character.constellation;
- newRow.insertCell().textContent = character.talent;
- newRow.insertCell().textContent = character.note;
- // 根据元素类型设置背景颜色
- // 根据元素类型设置背景颜色
- /*
- 原神中的七大元素颜色分别为:
- 火(红色)、水(蓝色)、风(青色)、雷(紫色)、草(绿色)、冰(浅蓝色)、岩(黄色)。
- */
- switch (elementData.element) {
- case "火":
- newRow.style.backgroundColor = "#FF0000"; // 红色
- break;
- case "水":
- newRow.style.backgroundColor = "#0000FF"; // 蓝色
- break;
- case "风":
- newRow.style.backgroundColor = "#00FFFF"; // 青色
- break;
- case "雷":
- newRow.style.backgroundColor = "#800080"; // 紫色
- break;
- case "草":
- newRow.style.backgroundColor = "#008000"; // 深绿色
- break;
- case "冰":
- newRow.style.backgroundColor = "#ADD8E6"; // 浅蓝色
- break;
- case "岩":
- newRow.style.backgroundColor = "#FFFF00"; // 黄色
- break;
- }
- }
- }
- </script>
-
- </html>

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。