前言
有人可能会好奇了,el-image 组件就一个图片展示有什么好研究的?
那你一定没发现,它还有一个让人又爱又恨的 preview-src-list 大图预览属性,功能还挺齐全的,像什么放大、缩小、旋转、全屏、连续查看 功能都有,这就很 nice!
但可惜,它没有单独的API,必须搭配 el-image 使用,这就导致使用场景被限制了很多很多 ...
没办法,又不想自己写,又想使用这个功能,只能狠下心去研究一下源码了 ....
。。。。。。
以上省略一万字研究过程,终于皇天不负苦心人,有结果了!
方案一
也是最无脑的方法,直接把 image-viewer 组件源码的相关文件都拷贝一份出来,只不过东西有点多有点杂,牵扯的方法还是挺多的,反正我是嫌繁琐了,不想弄。
方案二
通过 import 导入组件
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
就给个地址了,剩下的你们自己解决去
方案三
虽然导入的已经很便捷了,但是呢,在某种场景下,使用了 el-image 组件,但是又不想通过点击图片触发预览大图 ....
这种情况下,我的懒 绝不允许我再去引入一个组件去实现预览大图
所以,再二次观看源码后,意外的发现了一个更简洁的方案!
Html
<el-image ref="imgView"></el-image>
Javascript
this.$refs.imgView.clickHandler(); //可直接打开预览效果
有个小细节要注意一下,就是 :preview-src-list 不能为空,必须得有值,调用这个方法才会生效,要不然是没用的!
最后,再奉上一条消息,通过 clickHandler 事件打开预览效果,<el-image> 标签可设置 display:none; !!!
这样的话,似乎比直接导入 image-viewer 组件更便捷了那么一丢丢吧!