安装
npm install v-viewer@next
全局注册
import Viewer from 'v-viewer'
import 'viewerjs/dist/viewer.css'
const app = createApp(App)
//可以指定一些默认配置
app.use(Viewer, {
Options: {
'inline': true,
'button': true, //右上角按钮
"navbar": true, //底部缩略图
"title": true, //当前图片标题
"toolbar": true, //底部工具栏
"tooltip": true, //显示缩放百分比
"movable": true, //是否可以移动
"zoomable": true, //是否可以缩放
"rotatable": true, //是否可旋转
"scalable": true, //是否可翻转
"transition": true, //使用 CSS3 过度
"fullscreen": true, //播放时是否全屏
"keyboard": true, //是否支持键盘
"url": "data-source",
}
})
局部注册
import 'viewerjs/dist/viewer.css'
import { component as Viewer } from "v-viewer"
export default {
components: { Viewer },
}
csdn 引入
<link href="//unpkg.com/viewerjs/dist/viewer.css" rel="stylesheet">
<script src="//unpkg.com/viewerjs/dist/viewer.js"></script>
<script src="//unpkg.com/v-viewer@next/dist/index.umd.js"></script>
使用
- 通过指令形式调用
<div v-viewer>
<img v-for="src in images" :key="src" :src="src"/>
</div>
- 组件形式使用
// OptionssalseImg单个的配置
<viewer :images="listSalesImg" :options="OptionssalseImg">
<img v-for="src in listSalesImg" :key="src" :src="src">
</viewer>
- 通过API调用
<a v-if="images?.length" @click="showImagesInViewer(images)">查看</a>
import { api as viewerApi } from "v-viewer";
const showImagesInViewer = (urls)=> {
// urls = [{src:'',},]
urls instanceof Array &&
urls?.length &&
viewerApi({ images: urls })
},
示例
vue3 setup
由于全局注册v-viewer,组件、指令和api会被一起安装到app全局,可直接获取并使用全局变量 $viewerApi
import { getCurrentInstance } from 'vue'
const $viewerApi = getCurrentInstance().appContext.config.globalProperties.$viewerApi
$viewerApi({ images: [] })
手动导入api
import { api as viewerApi } from 'v-viewer'
viewerApi({ images: [] })