diff --git a/song-request-station copy.html b/song-request-station copy.html
new file mode 100644
index 0000000..15ea7e9
--- /dev/null
+++ b/song-request-station copy.html
@@ -0,0 +1,256 @@
+
+
+
+
+
+ 标签气泡动效
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
diff --git a/song-request-station.html b/song-request-station.html
new file mode 100644
index 0000000..56e88d2
--- /dev/null
+++ b/song-request-station.html
@@ -0,0 +1,287 @@
+
+
+
+
+
+ 标签气泡动效
+
+
+
+
+
+
+
+
+

+
+
+
+
+
+
+
+
diff --git a/static/css/song-request-station.css b/static/css/song-request-station.css
new file mode 100644
index 0000000..3a5f82d
--- /dev/null
+++ b/static/css/song-request-station.css
@@ -0,0 +1,290 @@
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+.container {
+ width: 100%;
+ background-color: #333333;
+ /* 气泡浮动动画 */
+ /* 呼吸效果动画 */
+}
+.container .flexflex {
+ display: flex;
+}
+.container .flexcenter {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.container .flexjcenter {
+ display: flex;
+ justify-content: center;
+}
+.container .flexacenter {
+ display: flex;
+ align-items: center;
+}
+.container .flex1 {
+ flex: 1;
+}
+.container .flexcolumn {
+ display: flex;
+ flex-direction: column;
+}
+.container .mar1200 {
+ width: 1200px;
+ margin: 0 auto;
+}
+.container * {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+.container body {
+ font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+ min-height: 100vh;
+ overflow: hidden;
+}
+.container .bubble-tag {
+ position: absolute;
+ padding: 8px 18px;
+ border-radius: 25px;
+ background-color: rgba(255, 255, 255, 0.9);
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
+ font-size: 14px;
+ cursor: pointer;
+ transition: transform 0.3s ease;
+ user-select: none;
+ z-index: 1;
+}
+.container .bubble-tag:hover {
+ transform: scale(1.15);
+ z-index: 10;
+ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
+}
+@keyframes float {
+ 0%,
+ 100% {
+ transform: translateY(0) translateX(0) rotate(0deg);
+ }
+ 25% {
+ transform: translateY(-15px) translateX(10px) rotate(1deg);
+ }
+ 50% {
+ transform: translateY(-30px) translateX(5px) rotate(0deg);
+ }
+ 75% {
+ transform: translateY(-15px) translateX(-10px) rotate(-1deg);
+ }
+}
+@keyframes pulse {
+ 0% {
+ opacity: 0.8;
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
+ }
+ 100% {
+ opacity: 1;
+ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
+ }
+}
+.container .container-box {
+ padding-top: 24px;
+ height: 100vh;
+ display: flex;
+ flex-direction: column;
+}
+.container .container-box .logo {
+ width: 121px;
+ height: 24px;
+ margin-bottom: 31px;
+}
+.container .container-box .header {
+ position: relative;
+ width: 1200px;
+ height: 320px;
+ border-radius: 20px;
+ margin-bottom: 20px;
+}
+.container .container-box .header::after {
+ content: "";
+ width: 1200px;
+ height: 320px;
+ background: linear-gradient(180deg, #7d4bf8 0%, #5241b0 100%);
+ border-radius: 20px;
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+.container .container-box .header .halo {
+ width: 240px;
+ height: 214px;
+ position: absolute;
+ top: -71px;
+ left: -59px;
+}
+.container .container-box .header .star-icon {
+ position: absolute;
+ top: 46px;
+ left: 51px;
+ width: 56px;
+ height: 56px;
+ z-index: 1;
+}
+.container .container-box .header .love-little {
+ position: absolute;
+ top: 46px;
+ left: 51px;
+ width: 186px;
+ height: 160px;
+ transform: rotate(315deg);
+ top: 137px;
+ left: -10px;
+ z-index: 1;
+}
+.container .container-box .header .bj-2 {
+ width: 360px;
+ height: 128px;
+ position: absolute;
+ left: 25px;
+ bottom: 0;
+ z-index: 1;
+}
+.container .container-box .header .music-icon {
+ width: 34px;
+ height: 37px;
+ position: absolute;
+ top: 194px;
+ left: 40px;
+ transform: rotate(345deg);
+ z-index: 1;
+}
+.container .container-box .header .bj {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ width: 1064px;
+ height: 320px;
+ z-index: 1;
+}
+.container .container-box .header .love-big {
+ transform: rotate(44deg);
+ width: 321px;
+ height: 276px;
+ position: absolute;
+ top: 31px;
+ left: 69px;
+ z-index: 1;
+}
+.container .container-box .header .music-score {
+ width: 240px;
+ height: 240px;
+ position: absolute;
+ top: 1px;
+ left: 217px;
+ z-index: 1;
+}
+.container .container-box .header .robot {
+ width: 238px;
+ height: 238px;
+ position: absolute;
+ top: 42px;
+ left: 432px;
+ z-index: 1;
+}
+.container .container-box .header .text {
+ width: 224px;
+ height: 194px;
+ position: absolute;
+ top: 68px;
+ left: 694px;
+ z-index: 1;
+}
+.container .container-box .header .face {
+ width: 83px;
+ height: 83px;
+ position: absolute;
+ top: -27px;
+ left: 1080px;
+ z-index: 1;
+}
+.container .container-box .header .star-icon-2 {
+ width: 110px;
+ height: 110px;
+ position: absolute;
+ left: 953px;
+ top: 70px;
+ z-index: 1;
+}
+.container .container-box .header .ai-music {
+ width: 81px;
+ height: 28px;
+ position: absolute;
+ top: 282px;
+ left: 1106px;
+ z-index: 1;
+}
+.container .container-box .header .record-black {
+ width: 223px;
+ height: 233px;
+ position: absolute;
+ bottom: 0;
+ right: -1px;
+ z-index: 1;
+}
+.container .container-box .header .record-circle {
+ position: absolute;
+ top: 147px;
+ left: 1039px;
+ background-color: #72db86;
+ width: 110px;
+ height: 110px;
+ border-radius: 50%;
+ z-index: 1;
+}
+.container .container-box .header .record-circle::after {
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ display: block;
+ width: 10px;
+ height: 10px;
+ border-radius: 50%;
+ background-color: #fff;
+}
+.container .container-box .header .green-glow {
+ width: 306px;
+ height: 62px;
+ position: absolute;
+ top: 285px;
+ left: 217px;
+}
+.container .container-box .header .shadow {
+ width: 240px;
+ height: 165px;
+ position: absolute;
+ top: 191px;
+ left: 997px;
+}
+.container .container-box .list-box {
+ width: 1200px;
+ height: 100%;
+ background-color: rgba(255, 255, 255, 0.10980392);
+ border-radius: 20px;
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 3px 0;
+ margin-bottom: 40px;
+ flex: 1;
+}
+.container .container-box .list-box .list {
+ width: 1194px;
+ height: 100%;
+ background: linear-gradient(180deg, #7d4bf8 0%, #5241b0 100%);
+ border-radius: 18px;
+}
diff --git a/static/css/song-request-station.less b/static/css/song-request-station.less
new file mode 100644
index 0000000..c5b64ce
--- /dev/null
+++ b/static/css/song-request-station.less
@@ -0,0 +1,324 @@
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+.container {
+ width: 100%;
+ background-color: rgba(51, 51, 51, 1);
+
+ .flexflex {
+ display: flex;
+ }
+ .flexcenter {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .flexjcenter {
+ display: flex;
+ justify-content: center;
+ }
+ .flexacenter {
+ display: flex;
+ align-items: center;
+ }
+ .flex1 {
+ flex: 1;
+ }
+ .flexcolumn {
+ display: flex;
+ flex-direction: column;
+ }
+
+ .mar1200 {
+ width: 1200px;
+ margin: 0 auto;
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ }
+
+ body {
+ font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
+ min-height: 100vh;
+ overflow: hidden;
+ }
+
+
+ .bubble-tag {
+ position: absolute;
+ padding: 8px 18px;
+ border-radius: 25px;
+ background-color: rgba(255, 255, 255, 0.9);
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
+ font-size: 14px;
+ cursor: pointer;
+ transition: transform 0.3s ease;
+ user-select: none;
+ z-index: 1;
+ }
+
+ .bubble-tag:hover {
+ transform: scale(1.15);
+ z-index: 10;
+ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
+ }
+
+ /* 气泡浮动动画 */
+ @keyframes float {
+ 0%,
+ 100% {
+ transform: translateY(0) translateX(0) rotate(0deg);
+ }
+ 25% {
+ transform: translateY(-15px) translateX(10px) rotate(1deg);
+ }
+ 50% {
+ transform: translateY(-30px) translateX(5px) rotate(0deg);
+ }
+ 75% {
+ transform: translateY(-15px) translateX(-10px) rotate(-1deg);
+ }
+ }
+
+ /* 呼吸效果动画 */
+ @keyframes pulse {
+ 0% {
+ opacity: 0.8;
+ box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
+ }
+ 100% {
+ opacity: 1;
+ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
+ }
+ }
+
+ .container-box {
+ padding-top: 24px;
+ height: 100vh;
+ display: flex;
+ flex-direction: column;
+
+ .logo {
+ width: 121px;
+ height: 24px;
+ margin-bottom: 31px;
+ }
+
+ .header {
+ position: relative;
+ width: 1200px;
+ height: 320px;
+ // background: linear-gradient(180deg, #7d4bf8 0%, #5241b0 100%);
+ border-radius: 20px;
+ margin-bottom: 20px;
+
+ &::after {
+ content: "";
+ width: 1200px;
+ height: 320px;
+ background: linear-gradient(180deg, #7d4bf8 0%, #5241b0 100%);
+ border-radius: 20px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ }
+
+ .halo {
+ width: 240px;
+ height: 214px;
+ position: absolute;
+ top: -71px;
+ left: -59px;
+ }
+
+ .star-icon {
+ position: absolute;
+ top: 46px;
+ left: 51px;
+ width: 56px;
+ height: 56px;
+ z-index: 1;
+ }
+
+ .love-little {
+ position: absolute;
+ top: 46px;
+ left: 51px;
+ width: 186px;
+ height: 160px;
+ transform: rotate(315deg);
+ top: 137px;
+ left: -10px;
+ z-index: 1;
+ }
+
+ .bj-2 {
+ width: 360px;
+ height: 128px;
+ position: absolute;
+ left: 25px;
+ bottom: 0;
+ z-index: 1;
+ }
+
+ .music-icon {
+ width: 34px;
+ height: 37px;
+ position: absolute;
+ top: 194px;
+ left: 40px;
+ transform: rotate(345deg);
+ z-index: 1;
+ }
+
+ .bj {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ width: 1064px;
+ height: 320px;
+ z-index: 1;
+ }
+
+ .love-big {
+ transform: rotate(44deg);
+ width: 321px;
+ height: 276px;
+ position: absolute;
+ top: 31px;
+ left: 69px;
+ z-index: 1;
+ }
+
+ .music-score {
+ width: 240px;
+ height: 240px;
+ position: absolute;
+ top: 1px;
+ left: 217px;
+ z-index: 1;
+ }
+
+ .robot {
+ width: 238px;
+ height: 238px;
+ position: absolute;
+ top: 42px;
+ left: 432px;
+ z-index: 1;
+ }
+
+ .text {
+ width: 224px;
+ height: 194px;
+ position: absolute;
+ top: 68px;
+ left: 694px;
+ z-index: 1;
+ }
+
+ .face {
+ width: 83px;
+ height: 83px;
+ position: absolute;
+ top: -27px;
+ left: 1080px;
+ z-index: 1;
+ }
+
+ .star-icon-2 {
+ width: 110px;
+ height: 110px;
+ position: absolute;
+ left: 953px;
+ top: 70px;
+ z-index: 1;
+ }
+
+ .ai-music {
+ width: 81px;
+ height: 28px;
+ position: absolute;
+ top: 282px;
+ left: 1106px;
+ z-index: 1;
+ }
+
+ .record-black {
+ width: 223px;
+ height: 233px;
+ position: absolute;
+ bottom: 0;
+ right: -1px;
+ z-index: 1;
+ }
+
+ .record-circle {
+ position: absolute;
+ top: 147px;
+ left: 1039px;
+ background-color: rgb(114, 219, 134);
+ width: 110px;
+ height: 110px;
+ border-radius: 50%;
+ z-index: 1;
+
+ &::after {
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ display: block;
+ width: 10px;
+ height: 10px;
+ border-radius: 50%;
+ background-color: #fff;
+ }
+ }
+
+ .green-glow {
+ width: 306px;
+ height: 62px;
+ position: absolute;
+ top: 285px;
+ left: 217px;
+ }
+
+ .shadow {
+ width: 240px;
+ height: 165px;
+ position: absolute;
+ top: 191px;
+ left: 997px;
+ }
+ }
+
+ .list-box {
+ width: 1200px;
+ height: 100%;
+ background-color: rgba(255, 255, 255, 0.109803921568627);
+ border-radius: 20px;
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 3px 0;
+ margin-bottom: 40px;
+ flex: 1;
+ .list {
+ width: 1194px;
+ height: 100%;
+ background: linear-gradient(180deg, #7d4bf8 0%, #5241b0 100%);
+ border-radius: 18px;
+ }
+ }
+ }
+}
diff --git a/static/img/ai-music.png b/static/img/ai-music.png
new file mode 100644
index 0000000..03b17f8
Binary files /dev/null and b/static/img/ai-music.png differ
diff --git a/static/img/favicon.ico b/static/img/favicon.ico
deleted file mode 100644
index 2670973..0000000
Binary files a/static/img/favicon.ico and /dev/null differ
diff --git a/static/img/green-glow.png b/static/img/green-glow.png
new file mode 100644
index 0000000..1490b51
Binary files /dev/null and b/static/img/green-glow.png differ
diff --git a/static/img/halo.png b/static/img/halo.png
new file mode 100644
index 0000000..b06b2a1
Binary files /dev/null and b/static/img/halo.png differ
diff --git a/static/img/love-big.svg b/static/img/love-big.svg
new file mode 100644
index 0000000..2d46457
--- /dev/null
+++ b/static/img/love-big.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/static/img/love-little.svg b/static/img/love-little.svg
new file mode 100644
index 0000000..40905d5
--- /dev/null
+++ b/static/img/love-little.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/static/img/music-icon.svg b/static/img/music-icon.svg
new file mode 100644
index 0000000..afc2675
--- /dev/null
+++ b/static/img/music-icon.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/static/img/music-score.png b/static/img/music-score.png
new file mode 100644
index 0000000..eed5c2e
Binary files /dev/null and b/static/img/music-score.png differ
diff --git a/static/img/record-black.svg b/static/img/record-black.svg
new file mode 100644
index 0000000..e6d3ca9
--- /dev/null
+++ b/static/img/record-black.svg
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/static/img/robot.png b/static/img/robot.png
new file mode 100644
index 0000000..09af665
Binary files /dev/null and b/static/img/robot.png differ
diff --git a/static/img/shadow.png b/static/img/shadow.png
new file mode 100644
index 0000000..f967f80
Binary files /dev/null and b/static/img/shadow.png differ
diff --git a/static/img/smiling-face.png b/static/img/smiling-face.png
new file mode 100644
index 0000000..4b54b82
Binary files /dev/null and b/static/img/smiling-face.png differ
diff --git a/static/img/song-request-bj-2.svg b/static/img/song-request-bj-2.svg
new file mode 100644
index 0000000..6980fb3
--- /dev/null
+++ b/static/img/song-request-bj-2.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/static/img/song-request-bj.svg b/static/img/song-request-bj.svg
new file mode 100644
index 0000000..f7c4a07
--- /dev/null
+++ b/static/img/song-request-bj.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/static/img/song-request-text.svg b/static/img/song-request-text.svg
new file mode 100644
index 0000000..a502e5b
--- /dev/null
+++ b/static/img/song-request-text.svg
@@ -0,0 +1,18 @@
+
+
\ No newline at end of file
diff --git a/static/img/star-icon-2.png b/static/img/star-icon-2.png
new file mode 100644
index 0000000..db57fff
Binary files /dev/null and b/static/img/star-icon-2.png differ
diff --git a/static/img/star-icon.png b/static/img/star-icon.png
new file mode 100644
index 0000000..bdcc078
Binary files /dev/null and b/static/img/star-icon.png differ
diff --git a/static/js/index.js b/static/js/index.js
index 45cba22..52d5736 100644
--- a/static/js/index.js
+++ b/static/js/index.js
@@ -179,6 +179,8 @@ const search = createApp({
let art = null;
// 开启播放 MV
const openPreview = (id) => {
+ closeAll();
+
ajax("https://pujianchaoyin.com/api/getMvDetail", {
id,
}).then((res) => {
@@ -234,10 +236,8 @@ const search = createApp({
const manageAudio = (src, area) => {
const audio = audioPlayer.value;
closeAll();
- nextTick(() => {
+ setTimeout(() => {
if (audio?.src != src) audio.src = src;
- console.log("audio", audio);
-
audio.play().then(() => {
if (area == "works") {
awardAudioList.value.forEach((item) => {
@@ -262,7 +262,7 @@ const search = createApp({
playData.value = { ...zeroOrderStudents.value, area };
}
});
- });
+ }, 500);
};
// 重新播放
diff --git a/tag-bubbles copy.html b/tag-bubbles copy.html
new file mode 100644
index 0000000..a8dd7ff
--- /dev/null
+++ b/tag-bubbles copy.html
@@ -0,0 +1,151 @@
+
+
+
+
+
+ 标签气泡动效
+
+
+
+ 标签气泡动效演示
+
+
+
+
+