diff --git a/package.json b/package.json
index ee88557..46f99ac 100644
--- a/package.json
+++ b/package.json
@@ -14,6 +14,7 @@
"axios": "^1.1.3",
"element-plus": "^2.2.18",
"pinia": "^2.0.23",
+ "pinia-plugin-persistedstate": "^3.0.0",
"vue": "^3.2.37",
"vue3-aplayer": "^1.7.3"
},
diff --git a/src/App.vue b/src/App.vue
index 6d584cb..355555b 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -2,7 +2,7 @@
-
@@ -57,6 +61,18 @@ onMounted(() => {
loadingBox.classList.add("loaded");
});
+ // 鼠标中键事件
+ window.addEventListener("mousedown", (event) => {
+ if (event.button == 1) {
+ store.backgroundShow = !store.backgroundShow;
+ if (store.backgroundShow) {
+ ElMessage("已开启壁纸展示状态");
+ } else {
+ ElMessage("已退出壁纸展示状态");
+ }
+ }
+ });
+
// 监听当前页面宽度
getWidth();
window.addEventListener("resize", getWidth);
@@ -103,6 +119,8 @@ main {
transition: all ease 1.25s;
opacity: 1;
filter: blur(0);
+ width: 100%;
+ height: 100%;
}
.loading {
diff --git a/src/components/Background/index.vue b/src/components/Background/index.vue
index b3c42d8..76306a5 100644
--- a/src/components/Background/index.vue
+++ b/src/components/Background/index.vue
@@ -1,12 +1,22 @@
@@ -62,7 +79,6 @@ watch(
transition: all 1.5s ease 0s;
backface-visibility: hidden;
}
-
.gray {
opacity: 1;
position: absolute;
@@ -70,11 +86,42 @@ watch(
top: 0;
width: 100%;
height: 100%;
- background-image: radial-gradient(rgba(0, 0, 0, 0) 0,
- rgba(0, 0, 0, 0.5) 100%),
+ background-image: radial-gradient(
+ rgba(0, 0, 0, 0) 0,
+ rgba(0, 0, 0, 0.5) 100%
+ ),
radial-gradient(rgba(0, 0, 0, 0) 33%, rgba(0, 0, 0, 0.3) 166%);
transition: 1.5s;
+ &.sm {
+ opacity: 0;
+ transition: 1.5s;
+ }
+ }
+ .down {
+ font-size: 16px;
+ color: white;
+ position: absolute;
+ bottom: 30px;
+ left: 0;
+ right: 0;
+ margin: 0 auto;
+ display: block;
+ padding: 20px 26px;
+ border-radius: 8px;
+ background-color: #00000030;
+ width: 120px;
+ height: 30px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ &:hover {
+ transform: scale(1.05);
+ background-color: #00000060;
+ }
+ &:active {
+ transform: scale(1);
+ }
}
}
diff --git a/src/components/Music/index.vue b/src/components/Music/index.vue
index 3f263f5..eba314f 100644
--- a/src/components/Music/index.vue
+++ b/src/components/Music/index.vue
@@ -98,6 +98,10 @@
:songId="playerData.id"
ref="playerRef"
/>
+
@@ -115,6 +119,7 @@ import {
VolumeMute,
VolumeSmall,
VolumeNotice,
+ PlayWrong,
} from "@icon-park/vue-next";
import Player from "@/components/Player/index.vue";
import { mainStore } from "@/store";
@@ -153,7 +158,7 @@ const changeMusicIndex = (type) => {
onMounted(() => {
// 空格键事件
window.addEventListener("keydown", (e) => {
- if (e.code == "Space") {
+ if (e.code == "Space" && store.musicIsOk) {
changePlayState();
}
});
@@ -183,10 +188,12 @@ watch(
flex-direction: column;
animation: fade;
-webkit-animation: fade 0.5s;
+
.btns {
display: flex;
align-items: center;
margin-bottom: 6px;
+
span {
background: #ffffff26;
padding: 2px 8px;
@@ -195,17 +202,20 @@ watch(
text-overflow: ellipsis;
overflow-x: hidden;
white-space: nowrap;
+
&:hover {
background: #ffffff4d;
}
}
}
+
.control {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-evenly;
width: 100%;
+
.state {
.i-icon {
width: 50px;
@@ -213,6 +223,7 @@ watch(
display: block;
}
}
+
.i-icon {
width: 36px;
height: 36px;
@@ -222,14 +233,17 @@ watch(
justify-content: center;
border-radius: 6px;
transform: scale(1);
+
&:hover {
background: #ffffff33;
}
+
&:active {
transform: scale(0.95);
}
}
}
+
.menu {
height: 26px;
width: 100%;
@@ -238,6 +252,7 @@ watch(
flex-direction: column;
align-items: center;
justify-content: center;
+
.name {
width: 100%;
text-align: center;
@@ -246,26 +261,32 @@ watch(
white-space: nowrap;
// font-size: 1.1rem;
}
+
.volume {
width: 100%;
padding: 0 12px;
display: flex;
align-items: center;
flex-direction: row;
+
.icon {
margin-right: 12px;
+
span {
width: 24px;
height: 24px;
display: block;
}
}
+
:deep(*) {
transition: none;
}
+
:deep(.el-slider__button) {
transition: 0.3s;
}
+
.el-slider {
margin-right: 12px;
--el-slider-main-bg-color: #efefef;
@@ -275,6 +296,7 @@ watch(
}
}
}
+
.music-list {
position: fixed;
top: 0;
@@ -285,6 +307,7 @@ watch(
background-color: #00000080;
backdrop-filter: blur(20px);
z-index: 1;
+
.list {
position: absolute;
display: flex;
@@ -297,6 +320,7 @@ watch(
background-color: #ffffff66;
border-radius: 6px;
z-index: 999;
+
.close {
position: absolute;
top: 12px;
@@ -304,13 +328,24 @@ watch(
width: 28px;
height: 28px;
display: block;
+
&:hover {
transform: scale(1.2);
}
+
&:active {
transform: scale(0.95);
}
}
+
+ .error {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ .i-icon {
+ margin-bottom: 20px;
+ }
+ }
}
}
@@ -318,14 +353,17 @@ watch(
.zoom-enter-active {
animation: zoom 0.4s ease-in-out;
}
+
.zoom-leave-active {
animation: zoom 0.3s ease-in-out reverse;
}
+
@keyframes zoom {
0% {
opacity: 0;
transform: scale(0) translateY(-600px);
}
+
100% {
opacity: 1;
transform: scale(1) translateY(0);
diff --git a/src/components/Set/index.vue b/src/components/Set/index.vue
index e0f0a37..1416a0f 100644
--- a/src/components/Set/index.vue
+++ b/src/components/Set/index.vue
@@ -1,52 +1,27 @@
-
-
-
-
-
- 默认壁纸
- 每日一图
- 随机风景
- 随机动漫
-
-
-
-
-
- Operation feedback: enable the users to clearly perceive their
- operations by style updates and interactive effects;
-
-
- Visual feedback: reflect current state by updating or rearranging
- elements of the page.
-
-
-
-
- Simplify the process: keep operating process simple and intuitive;
-
-
- Definite and clear: enunciate your intentions clearly so that the
- users can quickly understand and make decisions;
-
-
- Easy to identify: the interface should be straightforward, which helps
- the users to identify and frees them from memorizing and recalling.
-
-
-
-
- Decision making: giving advices about operations is acceptable, but do
- not make decisions for the users;
-
-
- Controlled consequences: users should be granted the freedom to
- operate, including canceling, aborting or terminating current
- operation.
-
-
-
-
+
+
+
+
+
+ 默认壁纸
+ 每日一图
+ 随机风景
+ 随机动漫
+
+
+
+
+ 设置内容待增加
+
+
+ 设置内容待增加
+
+
+ 设置内容待增加
+
+
+
\ No newline at end of file
diff --git a/src/main.js b/src/main.js
index edc412e..6782128 100644
--- a/src/main.js
+++ b/src/main.js
@@ -6,10 +6,12 @@ import App from '@/App.vue';
// 引入 pinia
import {
createPinia
-} from 'pinia'
+} from 'pinia';
+import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
const app = createApp(App);
const pinia = createPinia();
+pinia.use(piniaPluginPersistedstate);
app.use(pinia);
app.mount('#app')
\ No newline at end of file
diff --git a/src/store/index.js b/src/store/index.js
index 793b5e3..1699608 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -9,6 +9,7 @@ export const mainStore = defineStore("main", {
coverType: "0", // 壁纸种类
musicIsOk: false, // 音乐是否加载完成
musicOpenState: false, // 音乐面板开启状态
+ backgroundShow: false, // 壁纸展示状态
boxOpenState: false, // 盒子开启状态
setOpenState: false, // 设置页面开启状态
playerState: false, // 当前播放状态
@@ -58,4 +59,9 @@ export const mainStore = defineStore("main", {
this.playerArtist = artist;
}
},
+ persist: {
+ key: 'data',
+ storage: window.localStorage,
+ paths: ['coverType'],
+ },
})
\ No newline at end of file
diff --git a/src/style/global.css b/src/style/global.css
new file mode 100644
index 0000000..0d7a3d5
--- /dev/null
+++ b/src/style/global.css
@@ -0,0 +1,32 @@
+@charset "UTF-8";
+.container {
+ max-width: 1200px;
+}
+
+/* 小于1200px时 */
+@media (max-width: 1380px) {
+ .el-radio-group {
+ justify-content: center !important;
+ }
+}
+/* 小于1200px时 */
+@media (max-width: 1200px) {
+ .container {
+ max-width: 1000px;
+ }
+ .sm-hidden {
+ display: none;
+ }
+}
+/* 小于992px时 */
+@media (max-width: 992px) {
+ .container {
+ max-width: 900px;
+ }
+}
+/* 小于720px时 */
+@media (max-width: 720px) {
+ .xs-hidden {
+ display: none;
+ }
+}/*# sourceMappingURL=global.css.map */
\ No newline at end of file
diff --git a/src/style/global.css.map b/src/style/global.css.map
new file mode 100644
index 0000000..de0f57a
--- /dev/null
+++ b/src/style/global.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["global.css","global.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACIZ;EACI,iBAFqB;ADA7B;;ACSA,cAAA;AACA;EACI;IACI,kCAAA;EDNN;AACF;ACSA,cAAA;AACA;EAhBI;IACI,iBAgB2B;EDNjC;ECSE;IACI,aAAA;EDPN;AACF;ACUA,aAAA;AACA;EA1BI;IACI,gBA0B2B;EDPjC;AACF;ACSA,aAAA;AACA;EAGI;IACI,aAAA;EDTN;AACF","file":"global.css"}
\ No newline at end of file
diff --git a/src/style/global.scss b/src/style/global.scss
index 6f92ad7..fc6173b 100644
--- a/src/style/global.scss
+++ b/src/style/global.scss
@@ -10,6 +10,13 @@
// 首次调用
@include changeWidth;
+/* 小于1200px时 */
+@media (max-width: 1380px) {
+ .el-radio-group {
+ justify-content: center !important;
+ }
+}
+
/* 小于1200px时 */
@media (max-width: 1200px) {
@include changeWidth($maxWidth:1000px);
diff --git a/src/style/style.css b/src/style/style.css
new file mode 100644
index 0000000..3c7aee2
--- /dev/null
+++ b/src/style/style.css
@@ -0,0 +1,179 @@
+@charset "UTF-8";
+/*
+作者: imsyy
+主页:https://www.imsyy.top/
+GitHub:https://github.com/imsyy/home
+版权所有,请勿删除
+*/
+/*全局样式*/
+html,
+body {
+ width: 100%;
+ height: 100%;
+ background-color: #333;
+ overflow: hidden;
+}
+
+*,
+a,
+p {
+ margin: 0;
+ padding: 0;
+ -webkit-user-select: none;
+ -webkit-user-drag: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ text-decoration: none;
+ transition: 0.3s;
+ color: #fff;
+ box-sizing: border-box;
+}
+*:hover,
+a:hover,
+p:hover {
+ transition: 0.3s;
+}
+
+@font-face {
+ font-family: "Pacifico-Regular";
+ src: url("/font/Pacifico-Regular.ttf") format("truetype");
+}
+@font-face {
+ font-family: "UnidreamLED";
+ src: url("/font/UnidreamLED.ttf") format("truetype");
+}
+#app {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ z-index: 0;
+}
+
+.cards {
+ border-radius: 6px;
+ background: rgba(0, 0, 0, 0.2509803922);
+ -webkit-backdrop-filter: blur(10px);
+ backdrop-filter: blur(10px);
+ transform: scale(1);
+ transition: 0.5s;
+ animation: fade;
+ -webkit-animation: fade 0.5s;
+}
+
+.cards:hover {
+ transform: scale(1.01);
+ transition: 0.5s;
+}
+
+.cards:active {
+ transform: scale(0.98);
+ transition: 0.5s;
+}
+
+.el-message {
+ --el-message-bg-color: #00000040 !important;
+ --el-message-text-color: #efefef !important;
+ -webkit-backdrop-filter: blur(10px);
+ backdrop-filter: blur(10px);
+ border-radius: 25px !important;
+ border-color: transparent !important;
+}
+.el-message .el-message__badge {
+ display: none;
+}
+
+.el-progress-bar .el-progress-bar__outer {
+ border-radius: 6px;
+ background-color: rgba(0, 0, 0, 0.1254901961);
+}
+.el-progress-bar .el-progress-bar__outer .el-progress-bar__inner {
+ background-color: #efefef;
+ border-radius: 6px;
+ text-align: center;
+ font-family: "UnidreamLED";
+}
+.el-progress-bar .el-progress-bar__outer .el-progress-bar__inner span {
+ color: #564d59;
+ font-size: 0.9rem;
+}
+
+.el-popper.is-dark {
+ background: rgba(255, 255, 255, 0.3764705882) !important;
+ border: 1px solid transparent !important;
+}
+
+.el-card {
+ border-radius: 8px !important;
+ border: 1px solid transparent !important;
+ background-color: transparent !important;
+}
+.el-card .el-card__header {
+ font-weight: bold;
+ padding: 16px 20px !important;
+ background-color: rgba(255, 255, 255, 0.1882352941) !important;
+ border-bottom: 1px solid transparent !important;
+}
+.el-card .el-card__body {
+ padding: 0 !important;
+ background-color: rgba(255, 255, 255, 0.062745098) !important;
+}
+
+.fade-enter-active {
+ -webkit-animation: fade 0.3s ease-in-out;
+ animation: fade 0.3s ease-in-out;
+}
+
+.fade-leave-active {
+ animation: fade 0.3s ease-in-out reverse;
+}
+
+@-webkit-keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes fade {
+ 0% {
+ opacity: 0;
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+#cursor {
+ position: fixed;
+ width: 18px;
+ height: 18px;
+ background: #fff;
+ border-radius: 25px;
+ opacity: 0.25;
+ z-index: 10086;
+ pointer-events: none;
+ transition: 0.2s ease-in-out;
+ transition-property: background, opacity, transform;
+}
+#cursor.hidden {
+ opacity: 0;
+}
+#cursor.active {
+ opacity: 0.5;
+ transform: scale(0.5);
+}
+
+::-webkit-scrollbar {
+ width: 6px;
+ height: 6px;
+ background-color: transparent;
+}
+
+::-webkit-scrollbar-thumb {
+ border-radius: 10px;
+ background-color: #eeeeee;
+}/*# sourceMappingURL=style.css.map */
\ No newline at end of file
diff --git a/src/style/style.css.map b/src/style/style.css.map
new file mode 100644
index 0000000..f354fb7
--- /dev/null
+++ b/src/style/style.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["style.css","style.scss"],"names":[],"mappings":"AAAA,gBAAgB;ACAhB;;;;;CAAA;AASA,OAAA;AAEA;;EAEI,WAAA;EACA,YAAA;EACA,sBAAA;EACA,gBAAA;ADFJ;;ACKA;;;EAGI,SAAA;EACA,UAAA;EACA,yBAAA;EACA,uBAAA;EACA,sBAAA;GAAA,qBAAA;OAAA,iBAAA;EACA,qBAAA;EACA,gBAAA;EACA,WAAA;EACA,sBAAA;ADFJ;ACII;;;EACI,gBAAA;ADAR;;ACOA;EACI,+BAAA;EACA,yDAAA;ADJJ;ACOA;EACI,0BAAA;EACA,oDAAA;ADLJ;ACUA;EACI,kBAAA;EACA,MAAA;EACA,OAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;ADRJ;;ACYA;EACI,kBAAA;EACA,uCAAA;EACA,mCAAA;EACA,2BAAA;EACA,mBAAA;EACA,gBAAA;EACA,eAAA;EACA,4BAAA;ADTJ;;ACYA;EACI,sBAAA;EACA,gBAAA;ADTJ;;ACYA;EACI,sBAAA;EACA,gBAAA;ADTJ;;ACaA;EACI,2CAAA;EACA,2CAAA;EACA,mCAAA;EACA,2BAAA;EACA,8BAAA;EACA,oCAAA;ADVJ;ACYI;EACI,aAAA;ADVR;;ACgBI;EACI,kBAAA;EACA,6CAAA;ADbR;ACeQ;EACI,yBAAA;EACA,kBAAA;EACA,kBAAA;EACA,0BAAA;ADbZ;ACeY;EACI,cAAA;EACA,iBAAA;ADbhB;;ACsBA;EACI,wDAAA;EACA,wCAAA;ADnBJ;;ACuBA;EACI,6BAAA;EACA,wCAAA;EACA,wCAAA;ADpBJ;ACsBI;EACI,iBAAA;EACA,6BAAA;EACA,8DAAA;EACA,+CAAA;ADpBR;ACuBI;EACI,qBAAA;EACA,6DAAA;ADrBR;;AC0BA;EACI,wCAAA;UAAA,gCAAA;ADvBJ;;AC0BA;EACI,wCAAA;ADvBJ;;AC0BA;EACI;IACI,UAAA;EDvBN;EC0BE;IACI,UAAA;EDxBN;AACF;;ACiBA;EACI;IACI,UAAA;EDvBN;EC0BE;IACI,UAAA;EDxBN;AACF;AC4BA;EACI,eAAA;EACA,WAAA;EACA,YAAA;EACA,gBAAA;EACA,mBAAA;EACA,aAAA;EACA,cAAA;EACA,oBAAA;EACA,4BAAA;EACA,mDAAA;AD1BJ;AC4BI;EACI,UAAA;AD1BR;AC6BI;EACI,YAAA;EACA,qBAAA;AD3BR;;ACiCA;EACI,UAAA;EACA,WAAA;EACA,6BAAA;AD9BJ;;ACiCA;EACI,mBAAA;EACA,yBAAA;AD9BJ","file":"style.css"}
\ No newline at end of file
diff --git a/src/views/MoreSet/index.vue b/src/views/MoreSet/index.vue
index c1eca50..713dcd3 100644
--- a/src/views/MoreSet/index.vue
+++ b/src/views/MoreSet/index.vue
@@ -4,7 +4,7 @@
-
+
{{ siteUrl[0] }}
@@ -105,7 +105,7 @@ const jumpTo = () => {
.left {
height: 100%;
- margin-left: 20px;
+ padding-left: 40px !important;
padding-bottom: 20px;
display: flex;
flex-direction: column;
@@ -166,6 +166,10 @@ const jumpTo = () => {
align-items: center;
padding-bottom: 16px;
+ &:nth-last-of-type(1) {
+ padding: 0;
+ }
+
.i-icon {
width: 22px;
height: 22px;
@@ -180,6 +184,9 @@ const jumpTo = () => {
.right {
height: 100%;
padding-right: 40px !important;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
.title {
display: flex;
diff --git a/yarn.lock b/yarn.lock
index f1fad83..19288ae 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1134,6 +1134,11 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1:
resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+pinia-plugin-persistedstate@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.npmmirror.com/pinia-plugin-persistedstate/-/pinia-plugin-persistedstate-3.0.0.tgz#a7c97a84938c004499762e186149cff1c668400c"
+ integrity sha512-q62E691P9X0LRCj6QW44w0+HcXPQSteBiTHkQmXJcqcY6OD1mne0X0im3ghqjXDyo1hSq6pKRdnBIKEc988r/g==
+
pinia@^2.0.23:
version "2.0.23"
resolved "https://registry.npmmirror.com/pinia/-/pinia-2.0.23.tgz"