Vue 中使用 viewerjs
安装 viewerjs
npm install viewerjs --save
创建一个 Viewer.vue 组件
<template>
<div id="index">
<ul>
<li v-for="(item, index) in imgArr"
:key="index">
<img :src="item" />
</li>
</ul>
<p>测试测试测试</p>
<p>测试测试测试</p>
<p>测试测试测试</p>
<p>测试测试测试</p>
<img :src="imgArr[2]" />
</div>
</template>
<script>
import Viewer from 'viewerjs';
import 'viewerjs/dist/viewer.css';
export default {
name: 'Viewer',
data() {
return {
imgArr: [
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1538988692454&di=a6086c2c80a99ec0a50ed3696776f39e&imgtype=0&src=http%3A%2F%2Fpic165.nipic.com%2Ffile%2F20180522%2F12398452_105538125000_2.jpg',
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1539582468&di=78699558c94fff160ae1fa5cc73be9fa&imgtype=jpg&er=1&src=http%3A%2F%2Fpic166.nipic.com%2Ffile%2F20180522%2F12398452_105521854000_2.jpg',
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1538987750399&di=8c77894bad73fbc3c1c82ebde9309ff2&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimage%2Fc0%253Dpixel_huitu%252C0%252C0%252C294%252C40%2Fsign%3D09e9a51105f41bd5ce5ee0b438a2e4a7%2Ffaedab64034f78f083c1d8c972310a55b2191cc5.jpg',
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1538987750397&di=70b58f375170a335264545cdea00aec9&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimage%2Fc0%253Dpixel_huitu%252C0%252C0%252C294%252C40%2Fsign%3D79013c1e743e6709aa0d4dbf52bffa51%2Fb7fd5266d0160924759f6222df0735fae6cd3455.jpg',
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1538987750397&di=106be7a370b48812e9e7ed19e9c8eb16&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimage%2Fc0%253Dpixel_huitu%252C0%252C0%252C294%252C40%2Fsign%3D896dc4cbde62853586edda61f99713aa%2Fd009b3de9c82d158de82e7888b0a19d8bc3e4282.jpg'
]
};
},
mounted() {
const ViewerDom = document.getElementById('index');
const viewer = new Viewer(ViewerDom, {
// 配置
})
},
}
</script>
<style lang="less">
#index {
width: 100%;
ul {
li {
width: 24%;
height: 200px;
margin-right: 1%;
margin-bottom: 20px;
cursor: pointer;
display: inline-block;
&:nth-child(4n) {
margin-right: 0;
}
img {
height: 100%;
width: 100%;
object-fit: cover;
}
}
}
}
</style>
支持的键盘事件
仅在modal mode 下可用
- ESC 键:退出全屏、关闭、退出、停止播放
- Space 键:停止、播放
- ← 键:查看上一张图片
- → 键:查看下一张图片
- ↑ 键:放大图片
- ↓ 键:缩小图片
- Ctrl + 0 组合键:缩小到初始大小
- Ctrl + 1 组合键:放大到原始大小
参数配置
如果要改变全局的默认样式,可以使用 Viewer.setDefaults(options)
参数名称 | 参数类型 | 默认值 | 说明 |
---|---|---|---|
initialViewIndex | Number | 0 | 定义用于查看的图像的初始索引 |
inline | Boolean | false | 支持 inline mode |
button | Boolean | true | 是否显示查看图片时右上角的关闭按钮 |
navbar | Boolean / Number | true | 是否显示底部导航栏 0 或者 false :不显示 1 或者 true :显示 2 :当屏幕宽度大于768px时显示 3 :当屏幕宽度大于992px时显示 4 :当屏幕宽度大于1200px时显示 |
title | Boolean / Number / Function / Array |
true | 0 或者 false 时不显示1 或者true 或者function 或者array 时显示2 :当屏幕宽度大于768px时显示 3 :当屏幕宽度大于992px时显示 4 :当屏幕宽度大于1200px时显示function 在函数体内返回标题array 第一个参数表示可见性(0-4) 第二个参数就是标题 |
toolbar | Boolean / Number / Object | true | 标题栏是否显示和布局 0 或者 false 时不显示1 或者true 或者时显示2 :当屏幕宽度大于768px时显示 3 :当屏幕宽度大于992px时显示 4 :当屏幕宽度大于1200px时显示
|
tooltip | Boolean | true | 放大或缩小时显示的百分比的文字提示true : 显示 false : 不显示 |
movable | Boolean | true | 是否可以拖动图片 |
zoomable | Boolean | true | 是否可以缩放图片 |
rotatable | Boolean | true | 是否可以旋转图片 |
scalable | Boolean | true | 是否可以缩放图片 |
transition | Boolean | true | 为一些特殊元素启用CSS3转换。 |
fullscreen | Boolean | true | 允许全屏播放 |
keyboard | Boolean | true | 启用键盘支持 |
backdrop | Boolean / String | true | 启用 modal 为false的时候不支持点击背景关闭 |
loading | Boolean | true | 加载图片的时候的loading图标 |
loop | Boolean | true | 是否可以循环查看图片 |
interval | Number | 5000 | 定义图片查看器的最小的宽度 |
minWidth | Number | 200 | 定义图片查看器的最小的高度 |
minHeight | Number | 100 | 播放图片时 距离下一张图片的间隔时间 |
zoomRatio | Number | 0.1 | 利用鼠标滚轮缩放图片时的比例 |
minZoomRatio | Number | 0.01 | 缩小图片的最小比例 |
maxZoomRatio | Number | 100 | 放大图片的放大比例 |
zIndex | Number | 2015 | 定义查看器的CSS z-index值 modal 模式下 |
zIndexInline | Number | 0 | 定义查看器的CSS z-index值 inline 模式下 |
url | String / Function | src | 原始图像URL 如果是一个字符串,应该图像元素的属性之一 如果是一个函数,应该返回一个有效的图像URL |
container | Element / String | body | 将查看器置于modal模式的容器 只有在 inline为 false的时候才可以使用 |
filter | Function | null | 过滤图像以便查看(如果图像是可见的,应该返回true) |
toggleOnDblclick | Boolean | true | 当你放大或者缩小图片时 双击还原 |
ready | Function | null | 当查看图片时被触发的函数 只会触发一次 |
show | Function | null | 当查看图片时被触发的函数 每次查看都会触发 |
shown | Function | null | 当查看图片时被触发的函数 每次查看都会触发 在show之后 |
hide | Function | null | 当关闭图片查看器时被触发的函数 每次关闭都会触发 |
hidden | Function | null | 当关闭图片查看器时被触发的函数 每次关闭都会触发 在hide之后 |
view | Function | null | 当查看图片时被触发的函数 每次查看都会触发 在shown之后 |
viewed | Function | null | 当查看图片时被触发的函数 每次查看都会触发 在view之后 |
zoom | Function | null | 在图片缩放时触发 |
zoomed | Function | null | 在图片缩放时触发 在 zoom之后 |
toolbal Object 详解
key值名称 | 说明 |
---|---|
zoomIn | 放大图片的按钮 |
zoomOut | 缩小图片的按钮 |
reset | 重置图片大小的按钮 |
prev | 查看上一张图片的按钮 |
next | 查看上一张图片的按钮 |
play | 播放图片的按钮 |
rotateLeft | 向左旋转图片的按钮 |
rotateRight | 向右旋转图片的按钮 |
flipHorizontal | 图片左右翻转的按钮 |
flipVertical | 图片上下翻转的按钮 |
gitgub 地址:https://github.com/fengyuanchen/viewerjs#options
官网地址:https://fengyuanchen.github.io/viewerjs/
Vue 中使用 viewerjs的更多相关文章
- vue中使用viewerjs
项目创建 插件Viewer.js vue init webpack mytest001 安装viewerjs npm install viewerjs 删掉生成的项目里面的helloWord.vue ...
- Vue 中使用 viewerjs进行本地上传预览图片
https://www.cnblogs.com/shenjp/p/9754171.html 如果图片路径是 接口的返回信息的话,将路径存储在数组中,在this.$nextTick中实例化Viewer: ...
- 在 vue 中使用 vieiwer 图片预览插件
https://blog.csdn.net/WestLonly/article/details/79801800?utm_source=blogxgwz0 首先,感谢原作者 官网链接 github地址 ...
- vue中如何不通过路由直接获取url中的参数
前言:为什么要不通过路由直接获取url中的参数? vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的. 相对来说,在某些情况下直接 ...
- vue中的重要特性
一.vue中的自定义组件 html的代码: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- Vue中comoputed中的数据绑定
Vue中的数据实现响应式绑定是在初始化的时候利用definePrototype的定义set和get过滤器,在进行组件模板编译时实现water的监听搜集依赖项,当数据发生变化时在set中通过调用dep. ...
- vue中使用stompjs实现mqtt消息推送通知
最近在研究vue+webAPI进行前后端分离,在一些如前端定时循环请求后台接口判断状态等应用场景用使用mqtt进行主动的消息推送能够很大程度的减小服务端接口的压力,提高系统的效率,而且可以利用mqtt ...
- Vue中应用CORS实现AJAX跨域,及它在 form data 和 request payload 的小坑处理
基本概念部分(一):理解CORS 说道Vue的跨域AJAX,我想先梳理一遍CORS跨域,"跨域资源共享"(Cross-origin resource sharing),它是一个W3 ...
- vue中watched属性
watched属性,vue中的观察属性,可用来监听一个值的变化 默认有两个参数,新值,旧值 data (){ return { currentCity: "深圳" } } watc ...
随机推荐
- jquery将表单序列化
在工作中经常要将表单数据通过ajax提交,所以需要将表单序列化为json对象. 已经有大神提供了,以前一直百度,现在决定抄过来收藏一下,方便以后自己用,尊重原创,文章转载自:http://www.cn ...
- Axure 交互样式和选项组的设置
1.点击元件,点击属性,点击选中,点击图片,选择相应的图片,选中功能是当点击这个元件的时候,元件的变成相应的图片,然后再设置鼠标单击时的动作是选中,就可以实现选中某个元件的时候,元件会变成其他的图片. ...
- Spring Boot配置加载顺序
如果加载的配置有重复的,它们的加载顺序是这样的,数字越小的优先级越高,即优先级高的覆盖优先级低的配置. Devtools global settings properties on your home ...
- [Hibernate] official tutorial - userguide
Persistence contexts org.hibernate.Session API and javax.persistence.EntityManager API represent a c ...
- Servlet 会话技术cookie和session
会话技术 Cookie技术:会话数据保存在浏览器客户端. Session技术:会话数据保存在服务器端. 一.Cooke技术 1. 特点 Cookie技术:会话数据保存在浏览器客户端. 2 .Cooki ...
- js对象的深拷贝
关于对象的深拷贝一直是大家津津乐道一个话题,本骚年通过研究(yuedu)发现还是很easy的. 首推的方法简单有效,JSON.stringfy()和JSON.parse()即可搞定.但是这种简单粗暴的 ...
- commons-lang3工具类学习(一)
一.ArchUtils java运行环境的系统信息工具类 getArch();// 获取电脑处理器体系结构 32 bit.64 bit.unknown getType();// 返回处理器类型 ...
- Python中文问题
读取数据库中文是?? 解决如下 一.python2版本需要在 文件的开头要加上编码设置来说明文件的编码 python3版本以上不需要 #encoding=utf-8 二.在连接数据的连接参数里加上字 ...
- JQ 关于each() 箭头函数报错的问题
- python全局变量
定义函数里面的叫局部变量,出了函数外面就不能用了 局部变量函数被调用时,他的变量才生效 局部变量定义在内存里面,用完就会被释放,全局变量不会释放 当有相同名的局部变量和全局变量,函数会先找自己的变量, ...