Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作

v-viewer

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

从0.x迁移

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

1
import ‘viewerjs/dist/viewer.css‘

安装

使用npm命令安装

1
npm install v-viewer

使用

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

12345678910111213141516171819202122232425
<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实例。

12345678910111213141516171819202122232425
<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的创建只会在元素绑定指令时执行一次。
如果你确定元素内的图片不会再发生变化,使用它可以避免不必要的重建动作。

123
<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这种方法。

12345678910111213141516171819202122232425262728293031323334
<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

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

12345678910111213141516171819202122232425
<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的全局默认配置项,可以像这样引入:

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

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

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

原文地址:https://www.cnblogs.com/cangqinglang/p/10912201.html

时间: 2024-10-08 13:59:47

Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作的相关文章

iOS开发之窥探UICollectionViewController(五) --一款炫酷的图片浏览组件

本篇博客应该算的上CollectionView的高级应用了,从iOS开发之窥探UICollectionViewController(一)到今天的(五),可谓是由浅入深的窥探了一下UICollectionView的用法,这些用法不仅包括SDK中自带的流式布局(UICollectionViewDelegateFlowLayout)而且介绍了如何根据你的需求去自定义属于你自己的CollectionView.自定义的CollectionView可谓是非常灵活,其灵活性也决定了其功能的强大.Collect

Viewer.js --- 图片浏览插件

主要功能: 支持选项 支持方法 支持事件 支持触摸 支持移动 支持缩放 支持旋转 支持键盘 跨浏览器支持 作者githup地址:https://github.com/fengyuanchen/viewer 演示地址:http://fengyuanchen.github.io/viewer/ 基本使用方法: 1.引入文件 <link rel="stylesheet" href="css/viewer.min.css"> <script src=&qu

图片浏览(点击放大缩小支持多张图片浏览)

大神写的,我就参考参考啦! 从主布局开始了 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_pare

jquery图片查看插件,支持旋转、放大、缩小、拖拽、缩略图(仿qq图片查看)

最近做了一个jquery图片查看的插件,目的是能精确查看图片的详情,插件支持图片旋转.放大.缩小.拖拽.缩略图显示,界面效果是按照window的qq查看图片功能写的,当然不尽相同. 具体功能: 1. 多张图片切换,键盘左右键或左右箭头切换 2. 旋转 3. 放大,支持鼠标滚轮 4. 缩小,支持鼠标滚轮 5. 右下角缩略图 6. 拖拽大图 7. 全屏 PS:下面是插件各状态下效果,demo示例会在最后放出来. 全屏 全屏是容器的最大化. 缩小 可以点击缩小图标或者鼠标滚轮向下滚,可以缩小图片. 放

Discuz升级!图片查看插件(支持鼠标缩放、实际大小、旋转、下载)

图片查看是网站中的常用功能,用于展示详细的图片.在discuz图片插件的基础上进行了改造,因此这篇文章主要从以下几个方面来讨论图片查看插件.希望可以帮助到大家,有不对的地方也欢迎大家给以正确的指导. (1)discuz的实现过程及效果 (2)discuz的局限性 (3)discuz的改进步骤 (4)兼容性及最后效果 (5)总结(常见问题) demo示例:http://zyk3.ataw.cn/discuz/index.html 一.discuz的实现过程及效果 点击图片,弹出层有大图,同时有在新

Webpack+Vue+ES6 前端组件化开发mobile-multi-page应用实战总结

本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.写在前面 项目上线有一段时间了,一个基于webpack+vue+ES6的手机端多页面应用.其实说是多页面应用,实际上在webpack中属于四个app,  如果真是做纯单页面,那应该有二三十个页面吧.所以我这里的多页面应用,是分为四个SPA.比如微信最下面,有四个导航,微信,通讯录,发现,我. 那么这四个导航,就是我的四个SPA,配置多个入口即可. 在这里就不说太多代码了,项目结构将会放

图片浏览(CATransition)转场动画

Main.storyboard ViewController.m // //  ViewController.m //  8A04.图片浏览(转场动画) // //  Created by huan on 16/2/4. //  Copyright © 2016年 huanxi. All rights reserved. // #import "ViewController.h" #define AnimationDuration 2 @interface ViewController

WPF 图片浏览 伪3D效果

原文:WPF 图片浏览 伪3D效果 首先上效果图: 因项目要求,需要把图片以"好看"."炫"的效果展示出来,特地研究了一下WPF关于3D方面的制作,奈何最终成果只是能够画出一个立方体并使之旋转. 项目时间仅剩两天,只好放弃3D另找出路,于是就想起了Flash中各种"炫丽"的动画效果,图片按椭圆排列,并且旋转. 于是开始代码,然后发现关于椭圆啊.正玄余玄.x,y,r等等数学知识都忘得光光了,仅有思路没有进展,无奈之下开始百度恶补数学知识.图形变换.

Android之——史上最简单最酷炫的3D图片浏览效果的实现

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48052709 如今,Android开发已经成为移动互联开发领域中一支不可或缺的力量,那么Android中要实现3D的效果那也就是合情合理的事情了.那么,如何在Android中实现像IOS中那样的3D图片浏览效果呢?下面,鄙人将重磅推出今天的重点博文,和大家一起在Android中实现酷炫的3D图片浏览效果. 一.原理 老规矩,还是要来啰嗦下原理的东西. 整体实现是以手机屏幕的正中间