Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】


Posted in Javascript onNovember 04, 2019

本文实例讲述了Vue图片浏览组件v-viewer用法。分享给大家供大家参考,具体如下:

v-viewer

用于图片浏览的Vue组件,支持旋转、缩放、翻转等操作,基于viewer.js。

从0.x迁移

你需要做的唯一改动就是手动引入样式文件:

import 'viewerjs/dist/viewer.css'

安装

使用npm命令安装

npm install v-viewer

使用

引入v-viewer及必需的css样式,并使用Vue.use()注册插件,之后即可使用。

<template>
 <div id="app">
  <!-- directive -->
  <div class="images" v-viewer>
   <img src="1.jpg">
   <img src="2.jpg">
   ...
  </div>
  <!-- component -->
  <viewer :images="images">
   <img v-for="src in images" :src="src" :key="src">
  </viewer>
 </div>
</template>
<script>
 import 'viewerjs/dist/viewer.css'
 import Viewer from 'v-viewer'
 import Vue from 'vue'
 Vue.use(Viewer)
 export default {
  data() {
   images: ['1.jpg', '2.jpg']
  }
 }
</script>

以指令形式使用

只需要将v-viewer指令添加到任意元素即可,该元素下的所有img元素都会被viewer自动处理。

你可以像这样传入配置项: v-viewer="{inline: true}"

如果有必要,可以先用选择器查找到目标元素,然后可以用el.$viewer来获取viewer实例。

<template>
 <div id="app">
  <div class="images" v-viewer="{movable: false}">
   <img v-for="src in images" :src="src" :key="src">
  </div>
  <button type="button" @click="show">Show</button>
 </div>
</template>
<script>
 import 'viewerjs/dist/viewer.css'
 import Viewer from 'v-viewer'
 import Vue from 'vue'
 Vue.use(Viewer)
 export default {
  data() {
   images: ['1.jpg', '2.jpg']
  },
  methods: {
   show () {
    const viewer = this.$el.querySelector('.images').$viewer
    viewer.show()
   }
  }
 }
</script>

指令修饰器

static

添加修饰器后,viewer的创建只会在元素绑定指令时执行一次。

如果你确定元素内的图片不会再发生变化,使用它可以避免不必要的重建动作。

<div class="images" v-viewer.static="{inline: true}">
 <img v-for="src in images" :src="src" :key="src">
</div>

以组件形式使用

你也可以单独引入全屏组件并局部注册它。

使用作用域插槽来定制你的图片展示方式。

监听inited事件来获取viewer实例,或者也可以用this.refs.xxx.$viewer这种方法。

<template>
 <div id="app">
  <viewer :options="options" :images="images"
      @inited="inited"
      class="viewer" ref="viewer"
  >
   <template scope="scope">
    <img v-for="src in scope.images" :src="src" :key="src">
    {{scope.options}}
   </template>
  </viewer>
  <button type="button" @click="show">Show</button>
 </div>
</template>
<script>
 import 'viewerjs/dist/viewer.css'
 import Viewer from "v-viewer/src/component.vue"
 export default {
  components: {
   Viewer
  },
  data() {
   images: ['1.jpg', '2.jpg']
  },
  methods: {
   inited (viewer) {
    this.$viewer = viewer
   },
   show () {
    this.$viewer.show()
   }
  }
 }
</script>

配置项 & 方法

请参考viewer.js .

插件配置项

name

  • Type: String
  • Default: viewer

如果你需要避免重名冲突,可以像这样引入:

<template>
 <div id="app">
  <div class="images" v-vuer="{movable: false}">
   <img v-for="src in images" :src="src" :key="src">
  </div>
  <button type="button" @click="show">Show</button>
 </div>
</template>
<script>
 import 'viewerjs/dist/viewer.css'
 import Vuer from 'v-viewer'
 import Vue from 'vue'
 Vue.use(Vuer, {name: 'vuer'})
 export default {
  data() {
   images: ['1.jpg', '2.jpg']
  },
  methods: {
   show () {
    const vuer = this.$el.querySelector('.images').$vuer
    vuer.show()
   }
  }
 }
</script>

defaultOptions

  • Type: Object
  • Default: undefined

如果你需要修改viewer.js的全局默认配置项,可以像这样引入:

import Viewer from 'v-viewer'
import Vue from 'vue'
Vue.use(Viewer, {
 defaultOptions: {
  zIndex: 9999
 }
})

你还可以在任何时候像这样修改全局默认配置项:

import Viewer from 'v-viewer'
import Vue from 'vue'
Vue.use(Viewer)
Viewer.setDefaults({
 zIndexInline: 2017
})

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
jquery 图片Silhouette Fadeins渐显效果
Feb 07 Javascript
仿百度联盟对联广告实现代码
Aug 30 Javascript
使用node.js 制作网站前台后台
Nov 13 Javascript
基于javascript的COOkie的操作实现只能点一次
Dec 26 Javascript
jQuery入门介绍之基础知识
Jan 13 Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
Apr 27 Javascript
JavaScript 中调用 Kotlin 方法实例详解
Jun 09 Javascript
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
Vue DevTools调试工具的使用
Dec 05 Javascript
angularJs使用ng-repeat遍历后选中某一个的方法
Sep 30 Javascript
详解Vue中组件的缓存
Apr 20 Javascript
js实现简单进度条效果
Mar 25 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 #Javascript
vue中使用GraphQL的实例代码
Nov 04 #Javascript
Vue项目中Api的组织和返回数据处理的操作
Nov 04 #Javascript
JS+CSS实现随机点名(实例代码)
Nov 04 #Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
Nov 04 #Javascript
详解利用eventemitter2实现Vue组件通信
Nov 04 #Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 #jQuery
You might like
PHP.MVC的模板标签系统(一)
2006/09/05 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
ThinkPHP多表联合查询的常用方法
2020/03/24 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
php支付宝APP支付功能
2020/07/29 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
用JS实现的一个include函数
2007/07/21 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
window.event.keyCode兼容IE和Firefox实现js代码
2013/05/30 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
javascript日期验证之输入日期大于等于当前日期
2015/12/13 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
python使用rsa加密算法模块模拟新浪微博登录
2014/01/22 Python
Python Tkinter GUI编程入门介绍
2015/03/10 Python
解决pandas.DataFrame.fillna 填充Nan失败的问题
2018/11/06 Python
python numpy数组复制使用实例解析
2020/01/10 Python
django中url映射规则和服务端响应顺序的实现
2020/04/02 Python
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
家长通知书教师评语
2014/04/17 职场文书
2014年党员承诺书范文
2014/05/20 职场文书
干部选拔任用方案
2014/05/26 职场文书
青年文明号口号
2014/06/17 职场文书
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫