v-viewer 基于 vue 的一个插件,可以实现图片放大,缩小,旋转,拖拽,预览等各种功能,效果还是很棒的。这是我在 Github 摸鱼时发现的一个仓库,感觉很有用,就分享一下使用过程。

Github: https://github.com/mirari/v-viewer

1.安装

npm install v-viewer

2.用法

plugins 中新建 viewer.js 文件。

// /plugins/viewer.js

import Vue from 'vue';
import Viewer from 'v-viewer'
import 'viewerjs/dist/viewer.css'
Vue.use(Viewer)
Viewer.setDefaults({
  Options: { 'inline': true, 'button': true, 'navbar': true, 'title': true, 'toolbar': true, 'tooltip': true, 'movable': true, 'zoomable': true, 'rotatable': true, 'scalable': true, 'transition': true, 'fullscreen': true, 'keyboard': true, 'url': 'data-source' }
})

然后再 nuxt.config.js 中引入。

// nuxt.config.js

plugins: [
	// ...
	{ src: '@/plugins/viewer', ssr: false }
],

最后在使用的页面中引入。

<div class="markdown-body-box" v-viewer v-highlight>
<!-- 页面内容 -->
</div>

在任意页面中引入,可以是一个小组件页面,也可以是根页面,取决于你想在哪里引入这个功能,只要将class, v-viewer, v-highlight 这三个参数引入即可。