跳转到内容

快速上手 ​

安装 ​

sh
npm install v-viewer

旧项目升级注意

新版本无需显式安装 viewerjs 依赖,也无需在使用时引入 viewerjs 的 CSS 文件了。

自定义样式 ​

引入全局 CSS 覆盖默认样式:

js
import './viewer.css'
css
/* viewer.css */
.viewer-container.viewer-backdrop {
  background-color: rgba(0, 0, 0, 0.85);
}

.viewer-container .viewer-title {
  color: #fff;
  font-size: 14px;
}

完全替换默认样式 ​

使用 v-viewer/unstyled 保留全部功能,关闭自动加载 CSS:

js
import { Viewer } from 'v-viewer/unstyled'
import './viewer-theme.css'

可从 Viewer.js 仓库下载默认样式 viewer.css,保存为 viewer-theme.css 后修改。

基本使用方式 ​

组件 ​

适合对工具栏有定制需求、动态渲染 Markdown 或 HTML 等未知图片内容的复杂场景。默认监听组件内部 <img> 元素的增删和属性变化,自动更新图库。详细用法见组件。

vue
<script setup>
import { Viewer } from 'v-viewer'
const images = ['/photo.jpg']
</script>

<template>
  <Viewer :toolbar="true">
    <img v-for="src in images" :key="src" :src="src" />
  </Viewer>
</template>

指令 ​

适合无需复杂定制需求的简单浏览场景,同时支持动态渲染 Markdown 或 HTML 等未知图片内容。默认监听指令绑定元素内部 <img> 元素的增删和属性变化,自动更新图库。详细用法见指令。

vue
<script setup>
import { vViewer } from 'v-viewer'
</script>

<template>
  <div v-viewer="{ toolbar: true }">
    <img src="/photo.jpg" alt="Landscape" />
  </div>
</template>

API ​

适合按钮触发后打开指定图片数组等场景。详细用法见 API。

vue
<script setup>
import { useViewer } from 'v-viewer'
const { show } = useViewer({ images: ['/photo.jpg'] })
</script>

<template><button @click="show()">Open gallery</button></template>

其他导入方式 ​

CommonJS ​

js
const { Viewer, vViewer, useViewer } = require('v-viewer')

浏览器全局 ​

html
<link rel="stylesheet" href="https://unpkg.com/viewerjs/dist/viewer.css" />
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/viewerjs"></script>
<script src="https://unpkg.com/v-viewer"></script>
<div id="app">
  <div v-viewer><img src="photo.jpg" /></div>
</div>
<script>
  Vue.createApp({ directives: { viewer: VueViewer.vViewer } }).mount('#app')
</script>

基于 MIT 许可发布