update
Some checks failed
Deploy / build-and-deploy (push) Has been cancelled

This commit is contained in:
2025-09-05 12:34:09 +08:00
parent 1b9af9fa55
commit 1fc6f4ef21
2 changed files with 292 additions and 0 deletions

View File

@@ -9,6 +9,25 @@
<body> <body>
<div id="app"> <div id="app">
<!-- 左侧广告 -->
<div class="ad-left">
<div class="ad-content">
<h3 class="ad-title-shake">🔥 火<span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span>荐 🔥</h3>
<p class="ad-text-shake"><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span></p>
<p class="ad-text-shake"><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span></p>
<div class="ad-placeholder">
<div class="game-ad">
<div class="language-list">
<div class="game-title game-title-shake">P<span class="heart-shake"></span>Y<span class="heart-shake"></span>T<span class="heart-shake"></span>H<span class="heart-shake"></span>O<span class="heart-shake"></span>N</div>
<div class="game-title game-title-shake">W<span class="heart-shake"></span>E<span class="heart-shake"></span>B</div>
<div class="game-title game-title-shake">C<span class="heart-shake"></span><span class="heart-shake"></span></div>
</div>
<div class="game-subtitle game-subtitle-shake"><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span></div>
</div>
</div>
</div>
</div>
<div class="container"> <div class="container">
<main class="main"> <main class="main">
<h1 class="title gradient">♥️ 徐越的在线学习平台 ♥️</h1> <h1 class="title gradient">♥️ 徐越的在线学习平台 ♥️</h1>
@@ -31,6 +50,25 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 右侧广告 -->
<div class="ad-right">
<div class="ad-content">
<h3 class="ad-title-shake">🎮 游<span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span>到 🎮</h3>
<p class="ad-text-shake"><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span></p>
<p class="ad-text-shake"><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span></p>
<div class="ad-placeholder">
<div class="game-ad">
<div class="language-list">
<div class="game-title game-title-shake">P<span class="heart-shake"></span>Y<span class="heart-shake"></span>T<span class="heart-shake"></span>H<span class="heart-shake"></span>O<span class="heart-shake"></span>N</div>
<div class="game-title game-title-shake">W<span class="heart-shake"></span>E<span class="heart-shake"></span>B</div>
<div class="game-title game-title-shake">C<span class="heart-shake"></span><span class="heart-shake"></span></div>
</div>
<div class="game-subtitle game-subtitle-shake"><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span><span class="heart-shake"></span></div>
</div>
</div>
</div>
</div>
</div> </div>
<script type="module" src="/main.js"></script> <script type="module" src="/main.js"></script>
</body> </body>

254
style.css
View File

@@ -15,6 +15,12 @@ body {
overflow-x: hidden; overflow-x: hidden;
} }
#app {
display: flex;
min-height: 100vh;
position: relative;
}
/* 添加可爱的装饰星星 */ /* 添加可爱的装饰星星 */
body::before { body::before {
content: ''; content: '';
@@ -58,10 +64,216 @@ a:hover {
box-sizing: border-box; box-sizing: border-box;
} }
/* 广告区域样式 */
.ad-left,
.ad-right {
width: 280px;
min-height: 100vh;
position: fixed;
top: 0;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
}
.ad-left {
left: 0;
}
.ad-right {
right: 0;
}
.ad-content {
background: rgba(255, 255, 255, 0.9);
border: 2px solid rgba(255, 182, 193, 0.3);
border-radius: 15px;
padding: 1rem;
text-align: center;
box-shadow: 0 4px 15px rgba(255, 182, 193, 0.2);
backdrop-filter: blur(10px);
animation: adFloat 3s ease-in-out infinite;
}
.ad-content h3 {
color: #ff69b4;
font-size: 1.6rem;
margin: 0 0 0.5rem 0;
text-shadow: 1px 1px 2px rgba(255, 105, 180, 0.3);
}
.ad-content p {
color: #9370db;
font-size: 1.2rem;
margin: 0.3rem 0;
text-shadow: 1px 1px 2px rgba(147, 112, 219, 0.3);
}
.ad-placeholder {
width: 240px;
height: 400px;
background: linear-gradient(135deg, rgba(255, 182, 193, 0.3) 0%, rgba(221, 160, 221, 0.3) 100%);
border: 2px solid rgba(255, 105, 180, 0.5);
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
color: #ff69b4;
font-weight: bold;
font-size: 0.8rem;
animation: adPulse 2s ease-in-out infinite;
position: relative;
overflow: hidden;
}
.game-ad {
text-align: center;
padding: 1rem;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.game-title {
font-size: 1.6rem;
font-weight: bold;
color: #ff1493;
text-shadow: 2px 2px 4px rgba(255, 20, 147, 0.3);
margin-bottom: 0.5rem;
animation: gameTitleGlow 2s ease-in-out infinite;
}
.game-subtitle {
font-size: 1.2rem;
color: #9370db;
margin-bottom: 0.5rem;
text-shadow: 1px 1px 2px rgba(147, 112, 219, 0.3);
}
.language-list {
display: flex;
flex-direction: column;
gap: 0.3rem;
margin-top: 0.5rem;
justify-content: center;
align-items: center;
}
.play-button {
background: linear-gradient(45deg, #ff69b4, #ff1493);
color: white;
padding: 0.6rem 1.2rem;
border-radius: 20px;
font-size: 1rem;
font-weight: bold;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 4px 8px rgba(255, 20, 147, 0.3);
animation: buttonPulse 1.5s ease-in-out infinite;
}
.play-button:hover {
transform: scale(1.1);
box-shadow: 0 6px 12px rgba(255, 20, 147, 0.5);
}
@keyframes gameTitleGlow {
0%, 100% { text-shadow: 2px 2px 4px rgba(255, 20, 147, 0.3); }
50% { text-shadow: 2px 2px 8px rgba(255, 20, 147, 0.6), 0 0 12px rgba(255, 20, 147, 0.4); }
}
@keyframes buttonPulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.05); }
}
/* 爱心抖动效果 */
.heart-shake {
display: inline-block;
color: #ff1493;
animation: heartShake 0.5s ease-in-out infinite;
text-shadow: 0 0 3px rgba(255, 20, 147, 0.6);
font-size: 1.2em;
margin: 0 0.1em;
}
.ad-title-shake,
.ad-text-shake,
.game-title-shake,
.game-subtitle-shake,
.play-button-shake {
animation: textShake 2s ease-in-out infinite;
}
@keyframes heartShake {
0%, 100% {
transform: translateX(0) translateY(0) rotate(0deg) scale(1);
}
25% {
transform: translateX(-1px) translateY(-1px) rotate(-2deg) scale(1.1);
}
50% {
transform: translateX(1px) translateY(1px) rotate(2deg) scale(1.2);
}
75% {
transform: translateX(-1px) translateY(1px) rotate(-1deg) scale(1.1);
}
}
@keyframes textShake {
0%, 100% {
transform: translateX(0) translateY(0);
}
10% {
transform: translateX(-0.5px) translateY(-0.5px);
}
20% {
transform: translateX(0.5px) translateY(0.5px);
}
30% {
transform: translateX(-0.3px) translateY(0.3px);
}
40% {
transform: translateX(0.3px) translateY(-0.3px);
}
50% {
transform: translateX(-0.2px) translateY(0.2px);
}
60% {
transform: translateX(0.2px) translateY(-0.2px);
}
70% {
transform: translateX(-0.1px) translateY(0.1px);
}
80% {
transform: translateX(0.1px) translateY(-0.1px);
}
90% {
transform: translateX(0) translateY(0);
}
}
@keyframes adFloat {
0%, 100% { transform: translateY(0px); }
50% { transform: translateY(-5px); }
}
@keyframes adPulse {
0%, 100% { opacity: 0.7; }
50% { opacity: 1; }
}
.container { .container {
padding: 0 2rem; padding: 0 2rem;
position: relative; position: relative;
z-index: 2; z-index: 2;
flex: 1;
margin: 0 300px;
} }
.main { .main {
display: flex; display: flex;
@@ -323,6 +535,16 @@ a:hover {
} }
@media (max-width: 600px) { @media (max-width: 600px) {
.ad-left,
.ad-right {
display: none;
}
.container {
margin: 0;
padding: 0 1rem;
}
.grid { .grid {
width: 100%; width: 100%;
flex-direction: column; flex-direction: column;
@@ -345,6 +567,38 @@ a:hover {
} }
} }
@media (max-width: 1400px) {
.ad-left,
.ad-right {
width: 220px;
}
.container {
margin: 0 240px;
}
.ad-placeholder {
width: 180px;
height: 320px;
}
}
@media (max-width: 1200px) {
.ad-left,
.ad-right {
width: 180px;
}
.container {
margin: 0 200px;
}
.ad-placeholder {
width: 140px;
height: 280px;
}
}
@media (prefers-color-scheme: dark) { @media (prefers-color-scheme: dark) {
html { html {
color-scheme: dark; color-scheme: dark;