vue viewerjs预览图片

viewerjs配置

演示地址:http://demo.jb51.net/js/viewerjs/js/

名称类型默认说明
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 模式时的 z-index
zIndexInline数字0设置图片查看器inline 模式时的 z-index
url字符串/函数src设置大图片的 url
build函数null回调函数,具体查看演示
built函数null回调函数,具体查看演示
show函数null回调函数,具体查看演示
shown函数null回调函数,具体查看演示
hide函数null回调函数,具体查看演示
hidden函数null回调函数,具体查看演示
view函数null回调函数,具体查看演示
viewed函数null回调函数,具体查看演示

下载

//我的版本是1.6.0
npm i viewerjs

main.js

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'
  }
})

vue文件 点击图片直接预览

<viewer :images="images">
	<el-row :gutter="20">
		<el-col :span="6"  v-for="(src,index) in images" class="">
			<div class="grid-img">
				<img class="img" :src="src.src" :key="index" :onerror="errorImg">
			</div>
			<div class="grid-text">
				<p>病案首页</p>
			</div>
		</el-col>
	</el-row>
</viewer>

images: [
'https://img1.baidu.com/it/u=3231513395,3547618814&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
'https://img0.baidu.com/it/u=3361720531,2891890487&fm=253&fmt=auto&app=120&f=JPEG?w=1422&h=800',
'https://img2.baidu.com/it/u=3283516184,1511598906&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=313',
'https://img1.baidu.com/it/u=3231513395,3547618814&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
]

vue文件 点击事件预览图片

点击事件触发图片预览需要 启用 inline 模式

<viewer :images="images" @inited="viewerRichText">
	<el-row :gutter="20">
		<el-col :span="6"  v-for="(src,index) in images" class="">
			<div class="grid-img">
				<img class="img" :src="src.src" :key="index" :onerror="errorImg">
			</div>
			<div class="grid-text">
				<p>病案首页</p>
			</div>
		</el-col>
	</el-row>
</viewer>
<el-button type="primary" icon="" size="mini" @click="imgViewer()">预览</el-button>

images: [
'https://img1.baidu.com/it/u=3231513395,3547618814&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
'https://img0.baidu.com/it/u=3361720531,2891890487&fm=253&fmt=auto&app=120&f=JPEG?w=1422&h=800',
'https://img2.baidu.com/it/u=3283516184,1511598906&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=313',
'https://img1.baidu.com/it/u=3231513395,3547618814&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500',
]

imgViewer(index) {
	//从第一张开始显示
	this.$viewer.show();
	//从当前下标开始显示
	this.$viewer.view(index);
},
viewerRichText(viewer){
	this.$viewer = viewer;
},

效果

在这里插入图片描述


版权声明:本文为qq_44724181原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。