美文网首页Vue
vue-photo-preview简单使用

vue-photo-preview简单使用

作者: 顺其自然AAAAA | 来源:发表于2020-06-22 17:24 被阅读0次

    最近的一个项目尝试了3-4个预览图组件,都快疯了,还没确定使用哪个,都不太满意(其实是产品不满意,我移动端到是挺满意vant的预览图,就产品B事多),但是还是记录一下这个预览图插件(vue-photo-preview)
    vue-photo-preview是一个移动端多图预览插件,PC端其实也挺好用的,很棒
    1.安装依赖

    npm install vue-photo-preview --save
    

    2.在全局引入(main.js)

    import preview from 'vue-photo-preview'
    import 'vue-photo-preview/dist/skin.css'
    Vue.use(preview)
    
    1. 如果有需要改变默认配置的,可以这样来使用
    import preview from 'vue-photo-preview'
    import 'vue-photo-preview/dist/skin.css'
    var option = {
      maxSpreadZoom: 1, // 控制预览图最大的倍数,默认是2倍,我这里改成了原图
     fullscreenEl: false, //控制是否显示右上角全屏按钮
      closeEl: false, //控制是否显示右上角关闭按钮
      tapToClose: true, //点击滑动区域应关闭图库
      shareEl: false, //控制是否显示分享按钮
      zoomEl: false, //控制是否显示放大缩小按钮
      counterEl: false, //控制是否显示左上角图片数量按钮
      arrowEl: true,  //控制如图的左右箭头(pc浏览器模拟手机时)
      tapToToggleControls: true, //点击应切换控件的可见性
      clickToCloseNonZoomable: true //点击图片应关闭图库,仅当图像小于视口的大小时
    }
    Vue.use(preview, option)
    

    4.在vue项目的代码

    //在img标签添加preview属性 preview值相同即表示为同一组
    // 如果你只想预览,不想轮播,而且刚好又是循环的,可以这样    :preview="item.id",这样就不会有相同的preview值
     <img v-lazy="cosServer + item.imageurl" preview="1" :large="cosServer + item.imageurl" alt @load="imgLoad" />
    

    5.原插件photoswipe的事件响应,可以在mounted函数里面写,

     mounted () {
        this.$previewRefresh()
        this.$preview.on('close', () => {
          this.isShow = false
        })
      }
    

    6.如果图片是异步生成的,在图片数据更新后调用,其实就是后台的图片获取的时候添加,图片如果是异步获取,那么在获取之后要使用this.$previewRefresh()来重置一下,不然不生效。

    // 请求回来后的
      res.detail.worklist.forEach((v, i) => {
              if (v.type === 0) {
                this.workSwiperList.push(this.cosServer + v.imageurl)
                this.$previewRefresh()
              }
            })
    

    相关文章

      网友评论

        本文标题:vue-photo-preview简单使用

        本文链接:https://www.haomeiwen.com/subject/twfffktx.html