Skip to content

Commit 1c5e261

Browse files
committed
优化
1 parent cbdc986 commit 1c5e261

File tree

3 files changed

+353
-36
lines changed

3 files changed

+353
-36
lines changed

css/style.css

Lines changed: 270 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -37,26 +37,49 @@ body {
3737
overflow: hidden;
3838
}
3939

40+
/* 数字雨效果 */
4041
.bg-animation::before {
42+
content: '';
43+
position: absolute;
44+
top: -100%;
45+
left: 0;
46+
width: 100%;
47+
height: 200%;
48+
background-image:
49+
linear-gradient(0deg, transparent 70%, rgba(99, 102, 241, 0.1) 71%, rgba(99, 102, 241, 0.1) 72%, transparent 73%),
50+
linear-gradient(90deg, transparent 70%, rgba(139, 92, 246, 0.08) 71%, rgba(139, 92, 246, 0.08) 72%, transparent 73%);
51+
background-size: 50px 50px, 80px 80px;
52+
animation: matrix-rain 20s linear infinite;
53+
}
54+
55+
/* 光束扫描效果 */
56+
.bg-animation::after {
4157
content: '';
4258
position: absolute;
4359
top: 0;
4460
left: -100%;
4561
width: 200%;
4662
height: 100%;
47-
background: repeating-linear-gradient(
63+
background: linear-gradient(
4864
90deg,
49-
transparent,
50-
transparent 2px,
51-
rgba(99, 102, 241, 0.03) 2px,
52-
rgba(99, 102, 241, 0.03) 4px
65+
transparent 0%,
66+
transparent 40%,
67+
rgba(99, 102, 241, 0.05) 50%,
68+
rgba(236, 72, 153, 0.05) 60%,
69+
transparent 100%
5370
);
54-
animation: scan 8s linear infinite;
71+
animation: cyber-scan 12s ease-in-out infinite;
72+
}
73+
74+
@keyframes matrix-rain {
75+
0% { transform: translateY(0) translateX(0); }
76+
100% { transform: translateY(100%) translateX(20px); }
5577
}
5678

57-
@keyframes scan {
79+
@keyframes cyber-scan {
5880
0% { transform: translateX(0); }
59-
100% { transform: translateX(50%); }
81+
50% { transform: translateX(50%); }
82+
100% { transform: translateX(0); }
6083
}
6184

6285
/* ===== 导航栏 ===== */
@@ -451,7 +474,7 @@ tr:hover {
451474
margin: 1rem 0;
452475
}
453476

454-
/* ===== 粒子动画背景 ===== */
477+
/* ===== 高级粒子动画背景 ===== */
455478
.particles {
456479
position: fixed;
457480
top: 0;
@@ -462,35 +485,44 @@ tr:hover {
462485
pointer-events: none;
463486
}
464487

465-
.particles::before,
466-
.particles::after {
488+
/* 粒子群1 */
489+
.particles::before {
467490
content: '';
468491
position: absolute;
469-
width: 2px;
470-
height: 2px;
471-
background: var(--primary-color);
472-
box-shadow: 0 0 10px var(--primary-color);
473-
animation: float 15s infinite;
474-
}
475-
492+
width: 100%;
493+
height: 100%;
494+
background-image:
495+
radial-gradient(2px 2px at 20px 30px, rgba(99, 102, 241, 0.3), transparent),
496+
radial-gradient(2px 2px at 40px 70px, rgba(139, 92, 246, 0.2), transparent),
497+
radial-gradient(1px 1px at 90px 40px, rgba(236, 72, 153, 0.4), transparent),
498+
radial-gradient(1px 1px at 130px 80px, rgba(99, 102, 241, 0.2), transparent),
499+
radial-gradient(2px 2px at 160px 30px, rgba(139, 92, 246, 0.3), transparent);
500+
background-repeat: repeat;
501+
background-size: 200px 100px;
502+
animation: cosmic-drift 25s linear infinite;
503+
}
504+
505+
/* 粒子群2 */
476506
.particles::after {
477-
animation-delay: 7.5s;
478-
background: var(--accent-color);
479-
box-shadow: 0 0 10px var(--accent-color);
480-
}
481-
482-
@keyframes float {
483-
0%, 100% {
484-
transform: translate(0, 0) scale(0);
485-
opacity: 0;
486-
}
487-
10% {
488-
transform: translate(10vw, 10vh) scale(1);
489-
opacity: 1;
507+
content: '';
508+
position: absolute;
509+
width: 100%;
510+
height: 100%;
511+
background-image:
512+
radial-gradient(1px 1px at 60px 50px, rgba(236, 72, 153, 0.2), transparent),
513+
radial-gradient(2px 2px at 120px 20px, rgba(99, 102, 241, 0.1), transparent),
514+
radial-gradient(1px 1px at 180px 90px, rgba(139, 92, 246, 0.3), transparent);
515+
background-repeat: repeat;
516+
background-size: 250px 120px;
517+
animation: cosmic-drift 30s linear infinite reverse;
518+
}
519+
520+
@keyframes cosmic-drift {
521+
0% {
522+
transform: translateX(0) translateY(0);
490523
}
491-
90% {
492-
transform: translate(90vw, 90vh) scale(1);
493-
opacity: 1;
524+
100% {
525+
transform: translateX(-200px) translateY(-100px);
494526
}
495527
}
496528

@@ -916,10 +948,13 @@ footer {
916948
margin: 0 auto;
917949
padding: 0 2rem;
918950
color: var(--text-secondary);
951+
font-size: 0.9rem;
952+
line-height: 1.4;
919953
}
920954

921955
.footer-content p {
922956
margin: 0.5rem 0;
957+
font-size: 0.85rem;
923958
}
924959

925960
/* ===== Hero 副标题 ===== */
@@ -1158,4 +1193,205 @@ footer {
11581193
padding: 0.5rem 0.75rem;
11591194
font-size: 0.85rem;
11601195
}
1196+
1197+
.floating-contact-btn {
1198+
width: 50px;
1199+
height: 50px;
1200+
bottom: 20px;
1201+
right: 20px;
1202+
}
1203+
1204+
.modal-content {
1205+
width: 95%;
1206+
margin: 10% auto;
1207+
padding: 1rem;
1208+
}
1209+
}
1210+
1211+
/* ===== 邮箱链接样式 ===== */
1212+
.email-link {
1213+
color: var(--primary-color);
1214+
text-decoration: none;
1215+
border-bottom: 1px solid transparent;
1216+
transition: all 0.3s ease;
1217+
}
1218+
1219+
.email-link:hover {
1220+
border-bottom-color: var(--primary-color);
1221+
text-shadow: 0 0 5px rgba(99, 102, 241, 0.5);
1222+
}
1223+
1224+
/* ===== 全局联系按钮 ===== */
1225+
.floating-contact-btn {
1226+
position: fixed;
1227+
bottom: 30px;
1228+
right: 30px;
1229+
width: 60px;
1230+
height: 60px;
1231+
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
1232+
border-radius: 50%;
1233+
display: flex;
1234+
align-items: center;
1235+
justify-content: center;
1236+
box-shadow: 0 4px 20px rgba(99, 102, 241, 0.4);
1237+
cursor: pointer;
1238+
z-index: 1000;
1239+
transition: all 0.3s ease;
1240+
animation: pulse-float 3s ease-in-out infinite;
1241+
}
1242+
1243+
.floating-contact-btn:hover {
1244+
transform: scale(1.1);
1245+
box-shadow: 0 6px 25px rgba(99, 102, 241, 0.6);
1246+
}
1247+
1248+
.contact-icon {
1249+
font-size: 1.5rem;
1250+
animation: bounce 2s ease-in-out infinite;
1251+
}
1252+
1253+
@keyframes pulse-float {
1254+
0%, 100% {
1255+
transform: translateY(0);
1256+
box-shadow: 0 4px 20px rgba(99, 102, 241, 0.4);
1257+
}
1258+
50% {
1259+
transform: translateY(-5px);
1260+
box-shadow: 0 8px 25px rgba(99, 102, 241, 0.6);
1261+
}
1262+
}
1263+
1264+
@keyframes bounce {
1265+
0%, 20%, 50%, 80%, 100% {
1266+
transform: translateY(0);
1267+
}
1268+
40% {
1269+
transform: translateY(-3px);
1270+
}
1271+
60% {
1272+
transform: translateY(-2px);
1273+
}
1274+
}
1275+
1276+
/* ===== 联系弹窗样式 ===== */
1277+
.modal {
1278+
display: none;
1279+
position: fixed;
1280+
z-index: 2000;
1281+
left: 0;
1282+
top: 0;
1283+
width: 100%;
1284+
height: 100%;
1285+
background-color: rgba(0, 0, 0, 0.8);
1286+
backdrop-filter: blur(5px);
1287+
animation: fadeIn 0.3s ease;
1288+
}
1289+
1290+
.modal-content {
1291+
background: var(--bg-medium);
1292+
margin: 5% auto;
1293+
padding: 2rem;
1294+
border: 1px solid var(--border-color);
1295+
border-radius: 1rem;
1296+
width: 80%;
1297+
max-width: 500px;
1298+
position: relative;
1299+
animation: slideDown 0.3s ease;
1300+
}
1301+
1302+
.modal-header {
1303+
display: flex;
1304+
justify-content: space-between;
1305+
align-items: center;
1306+
margin-bottom: 1.5rem;
1307+
padding-bottom: 1rem;
1308+
border-bottom: 1px solid var(--border-color);
1309+
}
1310+
1311+
.modal-header h2 {
1312+
color: var(--primary-color);
1313+
margin: 0;
1314+
}
1315+
1316+
.close {
1317+
color: var(--text-secondary);
1318+
font-size: 2rem;
1319+
font-weight: bold;
1320+
cursor: pointer;
1321+
transition: color 0.3s ease;
1322+
}
1323+
1324+
.close:hover {
1325+
color: var(--accent-color);
1326+
}
1327+
1328+
.contact-info {
1329+
margin-bottom: 2rem;
1330+
}
1331+
1332+
.contact-item {
1333+
display: flex;
1334+
align-items: center;
1335+
margin-bottom: 1rem;
1336+
padding: 0.75rem;
1337+
background: rgba(99, 102, 241, 0.05);
1338+
border-radius: 0.5rem;
1339+
border: 1px solid rgba(99, 102, 241, 0.1);
1340+
}
1341+
1342+
.contact-label {
1343+
font-weight: bold;
1344+
margin-right: 0.5rem;
1345+
min-width: 80px;
1346+
}
1347+
1348+
.quick-contact h3 {
1349+
color: var(--primary-color);
1350+
margin-bottom: 1rem;
1351+
}
1352+
1353+
.form-group {
1354+
margin-bottom: 1rem;
1355+
}
1356+
1357+
.form-group label {
1358+
display: block;
1359+
margin-bottom: 0.5rem;
1360+
color: var(--text-primary);
1361+
font-weight: 500;
1362+
}
1363+
1364+
.form-group input,
1365+
.form-group textarea {
1366+
width: 100%;
1367+
padding: 0.75rem;
1368+
background: var(--bg-light);
1369+
border: 1px solid var(--border-color);
1370+
border-radius: 0.5rem;
1371+
color: var(--text-primary);
1372+
transition: all 0.3s ease;
1373+
font-family: inherit;
1374+
}
1375+
1376+
.form-group input:focus,
1377+
.form-group textarea:focus {
1378+
outline: none;
1379+
border-color: var(--primary-color);
1380+
box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);
1381+
}
1382+
1383+
.form-group textarea {
1384+
resize: vertical;
1385+
min-height: 100px;
1386+
}
1387+
1388+
@keyframes slideDown {
1389+
from {
1390+
opacity: 0;
1391+
transform: translateY(-50px);
1392+
}
1393+
to {
1394+
opacity: 1;
1395+
transform: translateY(0);
1396+
}
11611397
}

0 commit comments

Comments
 (0)