vue中使用viewer.js 插件

一、预览图

二、地址及参数

viewer.js GitHub地址:https://github.com/fengyuanchen/viewerjs
演示地址:https://fengyuanchen.github.io/viewerjs/

名称 类型 默认值 说明
inline 布尔值 false 启用 inline 模式
button 布尔值 true 显示右上角关闭按钮(jQuery 版本无效)
navbar 布尔值/整型 true 显示缩略图导航
title 布尔值/整型 true 显示当前图片的标题(现实 alt 属性及图片尺寸)
toolbar 布尔值/整型 true 显示工具栏
tooltip 布尔值 true 显示缩放百分比
movable 布尔值 true 图片是否可移动
zoomable 布尔值 true 图片是否可缩放
rotatable 布尔值 true 图片是否可旋转
scalable 布尔值 true 图片是否可翻转
transition 布尔值 true 使用 CSS3 过渡
fullscreen 布尔值 true 播放时是否全屏
keyboard 布尔值 true 是否支持键盘
interval 整型 5000 播放间隔,单位为毫秒
zoomRatio 浮点型 0.1 鼠标滚动时的缩放比例
minZoomRatio 浮点型 0.01 最小缩放比例
maxZoomRatio 数字 100 最大缩放比例
zIndex 数字 2015 设置图片查看器 modal 模式时的层级
url 字符串/函数 src 设置大图片的 url
build 函数 null 回调函数,具体查看演示
built 函数 null 回调函数,具体查看演示
show 函数 null 回调函数,具体查看演示
hide 函数 null 回调函数,具体查看演示
view 函数 null 回调函数,具体查看演示

三、代码示例

3.1 引入组件

全局引入:

import 'viewerjs/dist/viewer.css';import Viewer from 'v-viewer'; //图片浏览组件Vue.component('Viewer', Viewer);Vue.use(Viewer, {defaultOptions: {zIndex: 9999    }});Viewer.setDefaults({Options: {'inline': false,        'button': true,        'navbar': false,        'title': false,        'toolbar': true,        'tooltip': true,        'movable': true,        'zoomable': true,        'rotatable': true,        'scalable': true,        'transition': true,        'fullscreen': true,        'keyboard': true,        'url': 'data-source'    }});

局部引入:

import 'viewerjs/dist/viewer.css';import Viewer from 'v-viewer'; //图片浏览组件export default {components: {   Viewer         },}

3.2 html

<viewer ref="viewer" :options="options" :images='imgArr' style="display: none;" @inited="inited">      <img v-for="(src,index) in imgArr" :key="index" :src="src" :onerror="errorDefaultImg"></viewer>

3.3 js

data(){return{imgArr: [], //存放所有的图片地址        options: {   title: false, //预览组件-不显示标题         },         index: 0, //当前图片的索引         errorDefaultImg: require('../../../../assets/none-img.jpg'),//错误图片处理(虽然我也不知道为啥不太好使)}},methods: {//获取请求数据getListData() {  const params = {search: this.searchVal, pageSize: this.pageSize, page: this.page};         getImages(params).then(res => {this.imgArr = [];                if (res.code == 0) {const dataArr = res.data;                    this.listData = dataArr.map(item => { if (item.path) this.imgArr.push(item.path);// 预览组件传的值                         if (item.path == this.value)item.selected = true;                          else item.selected = false;                            return item;                     });                     this.total = res.total;                 }           });     },//初始化预览组件     inited(viewer) { this.$viewer = viewer;     },     onPreview: debounce(function (imgIndex) { // 显示预览组件         this.$viewer.show();         // 从当前图片开始预览         this.$viewer.view(imgIndex);     }, 300),}

完结撒花~

来源:https://www.icode9.com/content-4-906301.html

(0)

相关推荐

  • setTimeout在vue中的正确使用

    笔者最近因为公司需求开发使用vue和jquery开发抓娃娃H5极简小游戏,使用到setTimeout函数.遇到了1个坑: 在vue的某个方法(点击后执行) setTimeout(this.end(), ...

  • 【教程】Chrome浏览器中已安装的插件如何导出备份?

    本文被收录于专区 程序人生 进入专区参与更多专题讨论 平时使用Chrome插件过程中我们可能会遇到这种情况: 每次更换浏览器或者系统后,对于一些已经安装过的插件想导出保存一下,以便后续再安装或者分享给 ...

  • Vue:如何实现自定义插件?附示例源码。

    " 在 vue 中自定义实现插件的两种方式简介,附源码.本文大约 1300 字" 目录 install + use extend+appendChild 什么是自定义插件? 像惯常 ...

  • 怎么从谷歌浏览器中导出安装的插件?

    表白:黑白圣堂血天使,天剑鬼刀阿修罗.  讲解对象:/怎么从谷歌浏览器中导出安装的插件? 作者:融水公子 rsgz Google 教程 Google 教程 http://www.rsgz.top/po ...

  • (25条消息) vue中 关于$emit的用法

    (25条消息) vue中 关于$emit的用法

  • (25条消息) 在Vue中使用async函数

    在Vue中使用async函数 async/await语法 在生命周期钩子上使用async函数 在methods中使用async函数 源代码 async/await语法 在ES7标准中新增了async和 ...

  • WPS中的可以使用JS宏了!尝尝鲜-数组(上篇)

    之前我们写了一个VBA数组的专题,其中提到VBA中的数组相对其他语言而言弱太多了,他原生的方法基本等于没有,一般操作都需要遍历处理.最近听说WPS开始支持JS了,正好我们带着大家去看看JS中的数组使用 ...

  • 如何在Chrome浏览器中插入IDM扩展插件

    我们在日常办公生活中,会遇到很多关于下载文件.视频.音乐等内容的问题,用一些常见的下载软件体验很不好,不仅有广告而且还要开会员,让很多用户伤透了脑筋. 今天给大家推荐一款下载软件,这款软件就是堪称下载 ...

  • vue中怎么动态生成form表单

    form-create 是一个可以通过 JSON 生成具有动态渲染.数据收集.验证和提交功能的表单生成组件.支持3个UI框架,并且支持生成任何 Vue 组件.内置20种常用表单组件和自定义组件,再复杂 ...