April 25, 2025
วันนี้จะมาแนะนำวิธีการติดตั้ง Library นึงครับซึ่งจะทำให้รูปภายในเว็บไซต์ของเรามีลูกเล่นเหมือนกับรูปที่อยู่ภายในเว็บไซต์ Medium.com ครับ อยากรู้ว่าเป็นยังไงลองคลิกที่รูปด้านบนได้เลยครับ 👆
npm install medium-zoom
หรือ
yarn add medium-zoom
plugins\medium-zoom.client.ts
# เติม .client.ts เพื่อกำหนดว่า plugins นี้เป็นของฝั่ง client อย่างเดียวนะครับ
import { defineNuxtPlugin } from '#app'
import mediumZoom, { Zoom } from 'medium-zoom'
export default defineNuxtPlugin((nuxtApp) => {
const selector = '.image-zoomable'
const zoom: Zoom = mediumZoom(selector, {})
nuxtApp.hook('page:finish', () => {
zoom.detach(selector).attach(selector)
})
nuxtApp.provide('mediumZoom', zoom)
})
ใช้กับ <img />
<img src="/images/logo.jpeg" alt="logo" class="image-zoomable" />
# เพิ่ม "image-zoomable" เข้าไปใน class ได้เลย
ใช้กับ <nuxt-img />
<nuxt-img
src="/images/logo.jpeg"
alt="logo"
class="image-zoomable"
/>
# ซึ่งเป็นการเติม class เช่นเดียวกันครับ