feat: add img zoom

This commit is contained in:
camera-2018
2024-02-20 00:13:19 +08:00
parent 3da6a88596
commit 25e0d24dfa
10 changed files with 71 additions and 8 deletions

View File

@@ -0,0 +1,24 @@
import mediumZoom from 'medium-zoom'
import { inject, nextTick, onMounted, watch } from 'vue'
export const mediumZoomSymbol = Symbol('mediumZoom')
export function useMediumZoom() {
return onMounted(() => inject(mediumZoomSymbol)?.refresh())
}
export function createMediumZoomProvider(app, router) {
if (import.meta.env.SSR)
return
const zoom = mediumZoom()
zoom.refresh = () => {
zoom.detach()
zoom.attach(':not(a) > img:not(.no-zoom)')
zoom.update({ background: 'var(--vp-c-bg)' })
}
app.provide(mediumZoomSymbol, zoom)
watch(
() => router.route.path,
() => nextTick(() => zoom.refresh()),
)
}