实现效果:鼠标悬浮图片,出现图片名,点击图片后预览图片
实现思路:Image通过preview-src-list实现图片预览,然后在外面套一个el-Tooltip就行了
出现的bug:Image的预览大图也属于el-image,会导致鼠标悬浮大图上,依旧会显示文字提示
解决思路:
1. Tooltip 有一个disable属性,将这个属性绑定到计算属性上面,另外绑定一个值来控制
// 计算属性:判断是否禁用
const isDisabled = (attachmentName) => {
if (state.isShowView) return true;//如果这个值是true,直接禁用不显示文字提示
return attachmentName === '';//我这里后台来的空值只会是空字符串,自行判断
};
2. el-image有两个事件show和close,分别是显示大图,和关闭大图时触发
<el-image style="width: 100%;" :src="getFullUrl(item.attachmentUrl)" :zoom-rate="1.2" :max-scale="7" :min-scale="0.2" :initial-index="index" fit="cover" :preview-src-list="previewSrcList" @close="imgClose(false)" @show="imgClose(true)"></el-image>
const imgClose = (isShowView) => {
state.isShowView = isShowView
//在显示预览的时候就关闭文字显示,在关闭预览的时候在开启
}
结束
el-tooltip实例上还有两个方法分别是 onOpen和onClose,见名知意就是文字提示显示和隐藏的方法。但是我在用的时候发现 鼠标悬浮在el-image的大图上就 == 鼠标悬浮在el-image上,只能作罢
只要是 el-tooltip包裹的本体事件触发后,不想要显示文字提示,都可以用这个办法