refactor: remove underline animation and update styling

- Remove underline-animation UnoCSS shortcut from uno.config.ts
- Update Navbar component to remove underline-animation classes
- Remove inline script for link transition animations
- Add cover images to existing posts
- Update font and date display classes in index pages
- Modify global CSS for iOS rendering optimization
This commit is contained in:
radishzzz 2025-01-28 04:33:47 +00:00
parent f1d2204337
commit 0f20e43484
10 changed files with 29 additions and 73 deletions

View file

@ -52,7 +52,7 @@ const isAboutActive = isAboutPage(currentPath)
<a
href={getLocalizedPath('/')}
class:list={[
isPostActive ? 'underline-animation font-bold text-primary' : 'underline-animation',
isPostActive ? 'font-bold text-primary' : '',
]}
>
{currentUI.posts}
@ -62,7 +62,7 @@ const isAboutActive = isAboutPage(currentPath)
<a
href={getLocalizedPath('/tags')}
class:list={[
isTagActive ? 'underline-animation font-bold text-primary' : 'underline-animation',
isTagActive ? 'font-bold text-primary' : '',
]}
>
{currentUI.tags}
@ -72,7 +72,7 @@ const isAboutActive = isAboutPage(currentPath)
<a
href={getLocalizedPath('/about')}
class:list={[
isAboutActive ? 'underline-animation font-bold text-primary' : 'underline-animation',
isAboutActive ? 'font-bold text-primary' : '',
]}
>
{currentUI.about}
@ -80,33 +80,3 @@ const isAboutActive = isAboutPage(currentPath)
</li>
</ul>
</nav>
<script is:inline>
document.addEventListener('astro:before-preparation', (event) => {
const hoverElement = document.querySelector('.underline-animation:hover')
if (hoverElement) {
const originalLoader = event.loader
event.loader = async function () {
await new Promise((resolve) => {
// 添加强制收回动画的类
hoverElement.classList.add('force-leave')
// 等待动画完成
setTimeout(resolve, 300)
})
return originalLoader()
}
}
})
// 为所有带有下划线动画的链接添加点击事件处理
document.addEventListener('click', (e) => {
const link = e.target.closest('.underline-animation')
if (link) {
link.classList.add('force-leave')
}
})
</script>

View file

@ -21,6 +21,7 @@
pswpModule: () => pswp,
closeSVG: '<svg xmlns="http://www.w3.org/2000/svg" height="2.4rem" viewBox="0 -960 960 960" width="3.8rem" fill="#A0A09F"><path d="M480-424 284-228q-11 11-28 11t-28-11q-11-11-11-28t11-28l196-196-196-196q-11-11-11-28t11-28q11-11 28-11t28 11l196 196 196-196q11-11 28-11t28 11q11 11 11 28t-11 28L536-480l196 196q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-424Z"/></svg>',
zoomSVG: '<svg xmlns="http://www.w3.org/2000/svg" height="2.4rem" viewBox="0 -960 960 960" width="3.8rem" fill="#A0A09F"><path d="M340-540h-40q-17 0-28.5-11.5T260-580q0-17 11.5-28.5T300-620h40v-40q0-17 11.5-28.5T380-700q17 0 28.5 11.5T420-660v40h40q17 0 28.5 11.5T500-580q0 17-11.5 28.5T460-540h-40v40q0 17-11.5 28.5T380-460q-17 0-28.5-11.5T340-500v-40Zm40 220q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z"/></svg>',
padding: { top: window.innerHeight * 0.1, bottom: window.innerHeight * 0.1, left: window.innerWidth * 0.06, right: window.innerWidth * 0.06 },
wheelToZoom: true,
arrowPrev: false,
arrowNext: false,

View file

@ -7,11 +7,11 @@ function initScrollbar() {
const bodyElement = document.body
if (!bodyElement.hasAttribute('data-scrollbar-initialized')) {
scrollbarsInstance = OverlayScrollbars({
target: bodyElement,
cancel: {
nativeScrollbarsOverlaid: true, // don't initialize the overlay scrollbar if there is a native one
}
}, {
target: bodyElement,
cancel: {
nativeScrollbarsOverlaid: true,
},
}, {
scrollbars: {
theme: document.documentElement.classList.contains('dark') ? 'scrollbar-dark' : 'scrollbar-light',
autoHide: 'scroll',