From 87f9df80a53b3a405261f1b21054057f8d3f152b Mon Sep 17 00:00:00 2001 From: BTMuli Date: Tue, 17 Mar 2026 21:08:42 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=AB=20=E6=B7=BB=E5=8A=A0=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/app/t-pinWin.vue | 23 ++++++++++++++++++++++ src/components/app/t-postWidth.vue | 23 ++++++++++++++++++++++ src/components/app/t-shareBtn.vue | 10 ++++++++++ src/components/app/t-sidebar.vue | 5 +++++ src/components/app/t-switchTheme.vue | 13 +++++++++++- src/components/func/loading.vue | 4 ++-- src/components/viewPost/vp-btn-collect.vue | 10 ++++++++++ src/components/viewPost/vp-btn-reply.vue | 10 ++++++++++ 8 files changed, 95 insertions(+), 3 deletions(-) diff --git a/src/components/app/t-pinWin.vue b/src/components/app/t-pinWin.vue index fbea919d..7f658cb7 100644 --- a/src/components/app/t-pinWin.vue +++ b/src/components/app/t-pinWin.vue @@ -45,8 +45,16 @@ async function switchPin(): Promise { justify-content: center; border-radius: 50%; cursor: pointer; + transition: + transform 0.2s ease, + box-shadow 0.2s ease; + + &:active { + transform: scale(0.92); + } &.active { + animation: pin-pulse 0.3s ease; background: var(--tgc-btn-1); box-shadow: 1px 3px 6px var(--common-shadow-2); color: var(--btn-text); @@ -54,6 +62,21 @@ async function switchPin(): Promise { &:hover:not(.active) { background: var(--common-shadow-1); + transform: scale(1.05); + } +} + +@keyframes pin-pulse { + 0% { + transform: scale(1); + } + + 50% { + transform: scale(1.15); + } + + 100% { + transform: scale(1); } } diff --git a/src/components/app/t-postWidth.vue b/src/components/app/t-postWidth.vue index df244af8..cf007a1e 100644 --- a/src/components/app/t-postWidth.vue +++ b/src/components/app/t-postWidth.vue @@ -42,8 +42,16 @@ function switchPostWidth(): void { justify-content: center; border-radius: 50%; cursor: pointer; + transition: + transform 0.2s ease, + box-shadow 0.2s ease; + + &:active { + transform: scale(0.92); + } &.active { + animation: width-pulse 0.3s ease; background: var(--tgc-btn-1); box-shadow: 1px 3px 6px var(--common-shadow-2); color: var(--btn-text); @@ -51,6 +59,21 @@ function switchPostWidth(): void { &:hover:not(.active) { background: var(--common-shadow-1); + transform: scale(1.05); + } +} + +@keyframes width-pulse { + 0% { + transform: scale(1); + } + + 50% { + transform: scale(1.15); + } + + 100% { + transform: scale(1); } } diff --git a/src/components/app/t-shareBtn.vue b/src/components/app/t-shareBtn.vue index f90e837d..52ac9dcf 100644 --- a/src/components/app/t-shareBtn.vue +++ b/src/components/app/t-shareBtn.vue @@ -55,6 +55,16 @@ async function shareContent(): Promise { box-shadow: 1px 3px 6px var(--common-shadow-2); color: var(--btn-text); cursor: pointer; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} + +.share-box:hover { + box-shadow: 2px 4px 12px var(--common-shadow-4); + transform: scale(1.15); +} + +.share-box:active { + transform: scale(0.95); } .dark .share-box { diff --git a/src/components/app/t-sidebar.vue b/src/components/app/t-sidebar.vue index 6aa6e8e3..d179e2cb 100644 --- a/src/components/app/t-sidebar.vue +++ b/src/components/app/t-sidebar.vue @@ -816,6 +816,7 @@ async function tryLaunchGame(): Promise { width: 24px; height: 24px; border-radius: 4px; + transition: transform 0.2s ease; &.paimon { position: relative; @@ -824,6 +825,10 @@ async function tryLaunchGame(): Promise { height: 32px; border-radius: 50%; } + + &:hover { + transform: scale(1.15); + } } .side-list-menu { diff --git a/src/components/app/t-switchTheme.vue b/src/components/app/t-switchTheme.vue index 0631220c..51ecaedc 100644 --- a/src/components/app/t-switchTheme.vue +++ b/src/components/app/t-switchTheme.vue @@ -1,6 +1,6 @@