Skip to content

圖片預覽 API

v0.3.21 · Latest stable

預設沉浸模式只顯示置中的圖片,不顯示標題列、工具列或捲軸。面板會跟隨縮放後的圖片等比例調整,但不會超出扣除視口留白後的可用範圍。

最小範例

ts
import { bindImagePreview } from 'sodialog'

const binding = bindImagePreview({ root: document.querySelector('.help-content')! })
binding.destroy()
ts
import { openImagePreview } from 'sodialog'

const preview = openImagePreview('/images/manual.png', {
  alt: '操作說明',
  showToolbar: true,
})
preview.setScale(1.5)

方法

方法回傳值說明
openImagePreview(source, options?)SoImagePreviewHandle立即開啟 URL 或 HTMLImageElement
bindImagePreview(options?)SoImagePreviewBindingHandle委派監聽指定區域內的圖片點擊。

選項

選項型別預設值說明
titlestring圖片 alt 或 Image preview無障礙名稱及可選的可見標題。
altstring來源圖片 alt覆寫預覽圖片替代文字。
initialScale'fit' | 'original' | number'fit'初始比例;fit 只縮小超出視口的圖片。
minScalenumber0.25最小縮放比例。
maxScalenumber4最大縮放比例。
wheelStepnumber0.1每次滾輪縮放增量。
viewportPaddingnumber32視口四周保留的總尺寸。
resizeWithScalebooleantrue面板是否跟隨縮放圖片調整。
showHeaderbooleanfalse顯示標題列與關閉按鈕。
showToolbarbooleanfalse顯示縮小、比例、放大與 1:1 工具列。
showScalebooleantrue啟用工具列時是否顯示目前縮放百分比。
overflow'hidden' | 'auto''hidden'需要時啟用捲軸。

綁定選項另接受 root?: ParentNode(預設 document)與 selector?: string(預設 img)。預覽句柄除 SoDialogHandle 外還提供 imagescale() 與會限制範圍的 setScale(scale)。宿主移除時請呼叫綁定句柄的 destroy()

Released under the MIT License.