vue中图片点击预览

383 阅读1分钟

安装 使用npm命令安装

npm install v-viewer

使用 引入v-viewer及必需的css样式,并使用Vue.use()注册插件,之后即可使用。 main.js中 import ‘viewerjs/dist/viewer.css’ import Viewer from ‘v-viewer’ Vue.use(Viewer)

image.png

image.png

注册挂载之后,在image标签外面直接使用viewer标签

预览单张照片
 <viewer class="flex">       
          <img :src="a.picUrl" width="100%" height="100%" />          
      </viewer>
      预览多张
      <viewer :images="imageurl" class="flex">
        <div
          v-for="(item, index) in imageurl"
          :key="index"
          class="imgs-border"
        >
          <img :src="item" width="100%" height="100%" />
        </div>
      </viewer>

image.png

效果:

image.png

注意的点:我的这个图片是在弹框中点击预览 但是点击之后这个预览在弹框下面

使用v-viewer插件图片预览图片在弹出层后面

原因:elementui的dialog的z-index默认值是2000,v-viewer的z-index默认值是2015,并且每关闭一次dialog弹出层,它的index就会加2,所以按照这样的逻辑,前面的图片都能正常显示,到了第八张的时候,弹出层的z-index变为2016,此时图片显示出现问题,

解决办法:

将v-viewer的z-index的默认值设置尽量大,超出用户打开dialog次数即可。

Vue.use(Viewer, { defaultOptions: { zIndex: 9999,//解决图片放大的层级问题 } });

image.png