Element 您所在的位置:网站首页 pictureviewer下载 Element

Element

2023-07-22 07:56| 来源: 网络整理| 查看: 265

1. 简介

注意:本文 Element-ui 版本 2.11.1及以上 Element-ui 官方文档中有大图预览相关组件 传送门:Element-ui 图片组件,但我们不想通过使用 Image 组件的方式(先默认显示预览图片,再通过点击图片实现大图预览查看),又想实现直接预览大图的功能是否可行呢?答案是当然可以。

2. 图片查看器(el-image-viewer) 的使用

翻看了 Image 的源码,发现实现大图预览的是一个小组件 image-viewer。 打开看看它的 props,如下:

props: { urlList: { type: Array, default: () => [] }, zIndex: { type: Number, default: 2000 }, onSwitch: { type: Function, default: () => {} }, onClose: { type: Function, default: () => {} } }

我们需要用到的就只有 urlList(存放图片链接)与 onClose(关闭查看器)两个属性。

在需要使用到的 vue 文件中引入组件 components: { 'el-image-viewer': () => import('element-ui/packages/image/src/image-viewer') }, 在 template 中使用组件 显示大图预览后发现鼠标上下滚动放大缩小图片时,遮罩后面的页面如果有滚动条,也会跟着滚动,体验感不好; 解决如下:可以写两个方法,在打开预览后调用下面方法禁止页面滚动,关闭预览后打开页面滚动。 // 停止页面滚动 stopMove () { const m = (e) => { e.preventDefault() }; document.body.style.overflow = 'hidden'; document.addEventListener("touchmove", m, false); // 禁止页面滑动 }, // 开启页面滚动 move () { const m = (e) => { e.preventDefault() }; document.body.style.overflow = 'auto'; document.removeEventListener("touchmove", m, true); } 3. 完整代码 export default { data() { return { imgViewerVisible:false, imgList:[ 'https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg', 'https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg' ] }; }, components:{ 'el-image-viewer': () => import('element-ui/packages/image/src/image-viewer') }, methods: { showImgViewer(){ this.imgViewerVisible = true; const m = (e) => { e.preventDefault() }; document.body.style.overflow = 'hidden'; document.addEventListener("touchmove", m, false); // 禁止页面滑动 }, closeImgViewer(){ this.imgViewerVisible = false; const m = (e) => { e.preventDefault() }; document.body.style.overflow = 'auto'; document.removeEventListener("touchmove", m, true); }, } }; .content{ width: 100%; height: 1500px; background: pink; }

效果: 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有