新的实用更新

This commit is contained in:
Chance_Li
2025-09-04 14:31:44 +08:00
parent b8456c437a
commit 71a648fdf4
11 changed files with 1071 additions and 136 deletions

View File

@@ -10,6 +10,30 @@ body {
line-height: 1.6;
color: #2c3e50;
overflow-x: hidden;
animation: textColorShift 25s ease infinite;
}
@keyframes textColorShift {
0% {
color: #2c3e50;
text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8);
}
25% {
color: #1a252f;
text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.9);
}
50% {
color: #34495e;
text-shadow: 1px 1px 3px rgba(255, 255, 255, 0.7);
}
75% {
color: #2c3e50;
text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.8);
}
100% {
color: #2c3e50;
text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8);
}
}
/* 容器 */
@@ -31,7 +55,7 @@ body {
}
}
/* 玻璃拟态基础样式 */
/* 玻璃拟态基础样式 - 动态调节版本 */
.glass-morphism {
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(20px);
@@ -41,9 +65,48 @@ body {
0 8px 32px 0 rgba(31, 38, 135, 0.15),
inset 0 1px 0 rgba(255, 255, 255, 0.3);
border-radius: 20px;
animation: glassColorShift 25s ease infinite;
}
/* 头部 */
@keyframes glassColorShift {
0% {
background: rgba(255, 255, 255, 0.15);
border-color: rgba(255, 255, 255, 0.2);
box-shadow:
0 8px 32px 0 rgba(31, 38, 135, 0.15),
inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
25% {
background: rgba(255, 255, 255, 0.25);
border-color: rgba(255, 255, 255, 0.35);
box-shadow:
0 8px 32px 0 rgba(31, 38, 135, 0.25),
inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
50% {
background: rgba(255, 255, 255, 0.18);
border-color: rgba(255, 255, 255, 0.25);
box-shadow:
0 8px 32px 0 rgba(31, 38, 135, 0.18),
inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
75% {
background: rgba(255, 255, 255, 0.22);
border-color: rgba(255, 255, 255, 0.3);
box-shadow:
0 8px 32px 0 rgba(31, 38, 135, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
100% {
background: rgba(255, 255, 255, 0.15);
border-color: rgba(255, 255, 255, 0.2);
box-shadow:
0 8px 32px 0 rgba(31, 38, 135, 0.15),
inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
}
/* 头部 - 动态调节版本 */
.header {
text-align: center;
margin-bottom: 40px;
@@ -58,6 +121,45 @@ body {
inset 0 1px 0 rgba(255, 255, 255, 0.4);
position: relative;
overflow: hidden;
animation: headerColorShift 25s ease infinite;
}
@keyframes headerColorShift {
0% {
background: rgba(255, 255, 255, 0.1);
border-color: rgba(255, 255, 255, 0.2);
box-shadow:
0 8px 32px 0 rgba(31, 38, 135, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
25% {
background: rgba(255, 255, 255, 0.2);
border-color: rgba(255, 255, 255, 0.35);
box-shadow:
0 8px 32px 0 rgba(31, 38, 135, 0.3),
inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
50% {
background: rgba(255, 255, 255, 0.15);
border-color: rgba(255, 255, 255, 0.25);
box-shadow:
0 8px 32px 0 rgba(31, 38, 135, 0.22),
inset 0 1px 0 rgba(255, 255, 255, 0.45);
}
75% {
background: rgba(255, 255, 255, 0.18);
border-color: rgba(255, 255, 255, 0.3);
box-shadow:
0 8px 32px 0 rgba(31, 38, 135, 0.25),
inset 0 1px 0 rgba(255, 255, 255, 0.5);
}
100% {
background: rgba(255, 255, 255, 0.1);
border-color: rgba(255, 255, 255, 0.2);
box-shadow:
0 8px 32px 0 rgba(31, 38, 135, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
}
.header::before {
@@ -102,30 +204,77 @@ body {
.title {
font-size: 3.2em;
font-weight: 800;
color: rgba(255, 255, 255, 0.95);
color: #2c3e50;
margin-bottom: 10px;
text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8), 0 0 4px rgba(255, 255, 255, 0.6);
letter-spacing: 2px;
animation: titleGlow 4s ease-in-out infinite alternate;
animation: titleGlow 4s ease-in-out infinite alternate, titleColorShift 25s ease infinite;
}
@keyframes titleColorShift {
0% {
color: #2c3e50;
text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8), 0 0 4px rgba(255, 255, 255, 0.6);
}
25% {
color: #3498db;
text-shadow: 1px 1px 3px rgba(255, 255, 255, 0.9), 0 0 6px rgba(52, 152, 219, 0.4);
}
50% {
color: #e74c3c;
text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.7), 0 0 5px rgba(231, 76, 60, 0.3);
}
75% {
color: #f39c12;
text-shadow: 1px 1px 3px rgba(255, 255, 255, 0.8), 0 0 6px rgba(243, 156, 18, 0.4);
}
100% {
color: #2c3e50;
text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8), 0 0 4px rgba(255, 255, 255, 0.6);
}
}
@keyframes titleGlow {
0% {
text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
color: rgba(255, 255, 255, 0.95);
text-shadow: 1px 1px 2px rgba(255, 255, 255, 0.8), 0 0 4px rgba(255, 255, 255, 0.6);
color: #2c3e50;
}
100% {
text-shadow: 0 0 20px rgba(255, 255, 255, 0.8), 0 2px 10px rgba(0, 0, 0, 0.3);
color: rgba(255, 255, 255, 1);
text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.9), 0 0 8px rgba(255, 255, 255, 0.7);
color: #3498db;
}
}
.subtitle {
font-size: 1.3em;
color: rgba(255, 255, 255, 0.8);
color: #7f8c8d;
margin-bottom: 30px;
font-weight: 500;
text-shadow: 0 1px 5px rgba(0, 0, 0, 0.2);
font-weight: 600;
text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8);
animation: subtitleColorShift 25s ease infinite;
}
@keyframes subtitleColorShift {
0% {
color: #7f8c8d;
text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8);
}
25% {
color: #9b59b6;
text-shadow: 0 1px 3px rgba(255, 255, 255, 0.9);
}
50% {
color: #e67e22;
text-shadow: 0 1px 2px rgba(255, 255, 255, 0.7);
}
75% {
color: #27ae60;
text-shadow: 0 1px 3px rgba(255, 255, 255, 0.8);
}
100% {
color: #7f8c8d;
text-shadow: 0 1px 2px rgba(255, 255, 255, 0.8);
}
}
/* 日期选择器 */
@@ -149,10 +298,34 @@ body {
display: flex;
align-items: center;
gap: 8px;
color: rgba(255, 255, 255, 0.9);
color: #0f1419;
font-weight: 600;
font-size: 1em;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
animation: labelColorShift 25s ease infinite;
}
@keyframes labelColorShift {
0% {
color: #0f1419;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
}
25% {
color: #1a252f;
text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.7);
}
50% {
color: #2c3e50;
text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.5);
}
75% {
color: #0f1419;
text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.6);
}
100% {
color: #0f1419;
text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.6);
}
}
.label-icon {
@@ -166,13 +339,42 @@ body {
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 15px;
padding: 12px 16px;
color: rgba(255, 255, 255, 0.95);
color: #0a0f14;
font-size: 1em;
font-weight: 500;
transition: all 0.3s ease;
box-shadow:
0 4px 15px rgba(31, 38, 135, 0.1),
inset 0 1px 0 rgba(255, 255, 255, 0.2);
animation: inputColorShift 25s ease infinite;
}
@keyframes inputColorShift {
0% {
background: rgba(255, 255, 255, 0.1);
border-color: rgba(255, 255, 255, 0.3);
color: #0a0f14;
}
25% {
background: rgba(255, 255, 255, 0.2);
border-color: rgba(255, 255, 255, 0.4);
color: #1a252f;
}
50% {
background: rgba(255, 255, 255, 0.15);
border-color: rgba(255, 255, 255, 0.35);
color: #2c3e50;
}
75% {
background: rgba(255, 255, 255, 0.18);
border-color: rgba(255, 255, 255, 0.38);
color: #0a0f14;
}
100% {
background: rgba(255, 255, 255, 0.1);
border-color: rgba(255, 255, 255, 0.3);
color: #0a0f14;
}
}
.date-input:focus {
@@ -196,7 +398,7 @@ body {
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(15px);
-webkit-backdrop-filter: blur(15px);
color: rgba(255, 255, 255, 0.95);
color: #0a0f14;
border: 1px solid rgba(255, 255, 255, 0.3);
padding: 12px 28px;
border-radius: 20px;
@@ -209,10 +411,39 @@ body {
gap: 8px;
position: relative;
overflow: hidden;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
box-shadow:
0 4px 15px rgba(31, 38, 135, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.3);
animation: buttonColorShift 25s ease infinite;
}
@keyframes buttonColorShift {
0% {
background: rgba(255, 255, 255, 0.15);
border-color: rgba(255, 255, 255, 0.3);
color: #0a0f14;
}
25% {
background: rgba(255, 255, 255, 0.25);
border-color: rgba(255, 255, 255, 0.4);
color: #1a252f;
}
50% {
background: rgba(255, 255, 255, 0.2);
border-color: rgba(255, 255, 255, 0.35);
color: #2c3e50;
}
75% {
background: rgba(255, 255, 255, 0.22);
border-color: rgba(255, 255, 255, 0.38);
color: #0a0f14;
}
100% {
background: rgba(255, 255, 255, 0.15);
border-color: rgba(255, 255, 255, 0.3);
color: #0a0f14;
}
}
.query-btn::before {
@@ -257,7 +488,7 @@ body {
align-items: center;
justify-content: center;
gap: 8px;
color: rgba(255, 255, 255, 0.8);
color: #1a252f;
font-size: 1em;
padding: 10px 20px;
background: rgba(255, 255, 255, 0.08);
@@ -266,7 +497,8 @@ body {
border-radius: 20px;
border: 1px solid rgba(255, 255, 255, 0.15);
display: inline-flex;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
font-weight: 600;
}
.time-icon {
@@ -477,8 +709,8 @@ body {
.card-title {
font-size: 1.5em;
font-weight: 700;
color: rgba(255, 255, 255, 0.95);
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
color: #0a0f14;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}
.card-content {
@@ -512,16 +744,16 @@ body {
.item-label {
font-weight: 600;
color: rgba(255, 255, 255, 0.9);
color: #1a252f;
min-width: 80px;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}
.item-value {
font-weight: 700;
color: rgba(255, 255, 255, 0.95);
color: #0a0f14;
font-size: 1.1em;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}
/* 错误信息 */
@@ -558,14 +790,15 @@ body {
.error-content h3 {
font-size: 1.6em;
color: rgba(255, 255, 255, 0.95);
color: #0a0f14;
margin: 0;
font-weight: 700;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}
.error-content p {
color: rgba(255, 255, 255, 0.8);
color: #1a252f;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
font-size: 1.1em;
margin: 0;
line-height: 1.6;
@@ -576,7 +809,7 @@ body {
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(15px);
-webkit-backdrop-filter: blur(15px);
color: rgba(255, 255, 255, 0.95);
color: #0a0f14;
border: 1px solid rgba(255, 255, 255, 0.3);
padding: 12px 25px;
border-radius: 20px;
@@ -587,7 +820,7 @@ body {
display: inline-flex;
align-items: center;
gap: 8px;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
box-shadow:
0 4px 15px rgba(31, 38, 135, 0.2),
inset 0 1px 0 rgba(255, 255, 255, 0.3);
@@ -643,9 +876,9 @@ body {
.tip-card h3 {
font-size: 1.4em;
font-weight: 700;
color: rgba(255, 255, 255, 0.95);
color: #0a0f14;
margin-bottom: 20px;
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
text-shadow: 0 1px 3px rgba(0, 0, 0, 0.6);
}
.tip-card ul {
@@ -656,7 +889,7 @@ body {
}
.tip-card li {
color: rgba(255, 255, 255, 0.9);
color: #1a252f;
font-size: 1em;
padding: 10px 15px;
background: rgba(255, 255, 255, 0.08);
@@ -665,7 +898,7 @@ body {
border-radius: 10px;
border: 1px solid rgba(255, 255, 255, 0.15);
transition: all 0.3s ease;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
.tip-card li:hover {
@@ -887,6 +1120,35 @@ body {
padding: 8px 12px;
font-size: 0.9em;
}
/* 手机端性能优化 - 减少动画 */
.title {
animation: none;
}
.subtitle {
animation: none;
}
.input-label {
animation: none;
}
.date-input {
animation: none;
}
.query-btn {
animation: none;
}
.card-icon {
animation: none;
}
.tip-icon {
animation: none;
}
}
/* 超小屏幕适配 (480px以下) */
@@ -1004,6 +1266,35 @@ body {
display: none;
}
/* 禁用复杂动画以提升性能 */
.title {
animation: none;
}
.subtitle {
animation: none;
}
.input-label {
animation: none;
}
.date-input {
animation: none;
}
.query-btn {
animation: none;
}
.card-icon {
animation: none;
}
.tip-icon {
animation: none;
}
.loading-content {
gap: 15px;
}
@@ -1047,12 +1338,14 @@ body {
.hour-name {
font-size: 14px;
font-weight: 600;
color: #ffffff;
color: #2c3e50;
text-align: center;
margin-bottom: 8px;
padding: 4px 8px;
background: rgba(255, 255, 255, 0.1);
background: rgba(255, 255, 255, 0.8);
border-radius: 6px;
text-shadow: 0 1px 2px rgba(255, 255, 255, 0.5);
border: 1px solid rgba(255, 255, 255, 0.9);
}
.hour-content {