zoukankan      html  css  js  c++  java
  • vue实现图片预览旋转/放大缩小/上下切换等功能

    插件:viewerjs

    GitHub地址:https://github.com/fengyuanchen/viewerjs

    使用步骤:

    1.安装。  npm install v-viewer --save 

    2.引入。

    import Vue from 'vue';
    import Viewer from 'v-viewer'
    import 'viewerjs/dist/viewer.css'

    3.注册使用。调用 setDefaults()方法,根据需求选择功能。

    Vue.use(Viewer);
    Viewer.setDefaults({
        'inline':true,
        'button':true, //右上角按钮
        "navbar": true, //底部缩略图
        "title": true, //当前图片标题
        "toolbar": true, //底部工具栏
        "tooltip": true, //显示缩放百分比
        "movable": true, //是否可以移动
        "zoomable": true, //是否可以缩放
        "rotatable": true, //是否可旋转
        "scalable": true, //是否可翻转
        "transition": true, //使用 CSS3 过度
        "fullscreen": true, //播放时是否全屏
        "keyboard": true, //是否支持键盘
        "url": "data-source",
        ready: function (e) {
          console.log(e.type,'组件以初始化');
        },
        show: function (e) {
          console.log(e.type,'图片显示开始');
        },
        shown: function (e) {
          console.log(e.type,'图片显示结束');
        },
        hide: function (e) {
          console.log(e.type,'图片隐藏完成');
        },
        hidden: function (e) {
          console.log(e.type,'图片隐藏结束');
        },
        view: function (e) {
          console.log(e.type,'视图开始');
        },
        viewed: function (e) {
          console.log(e.type,'视图结束');
          // 索引为 1 的图片旋转20度
          if(e.detail.index === 1){
              this.viewer.rotate(20);
          }
        },
        zoom: function (e) {
          console.log(e.type,'图片缩放开始');
        },
        zoomed: function (e) {
          console.log(e.type,'图片缩放结束');
        }
      });

    4.代码中使用。

    <div>
        <viewer :images="images" style="height: 800px;">
            <img v-for="item in images" :src="item.src" :key="item.index" height="100">
        </viewer>
    </div>
    data() {
          return {
            images:[
              {src:'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3272199364,3404297250&fm=26&gp=0.jpg',index:1},
              {src:'https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3267295166,2381808815&fm=26&gp=0.jpg',index:2},
              {src:'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=3429654663,2972188411&fm=26&gp=0.jpg',index:3},
              {src:'https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=3597323878,2962972725&fm=26&gp=0.jpg',index:4},
            ]
          }
        }

    5.效果如下。

  • 相关阅读:
    vue 组件的简单使用01
    vue 绑定 class 和 内联样式(style)
    input select 值得绑定与获取
    computed 计算属性
    v-for 循环 绑定对象 和数组
    过滤器 filter
    v-model 双向数据绑定以及修饰符
    v-on 绑定单个或多个事件
    v-bin:href 绑定链接
    .net core自动发送后台请求写法
  • 原文地址:https://www.cnblogs.com/zhaohui-116/p/12784530.html
Copyright © 2011-2022 走看看