如何在 Vue 中实现一个包含图像和蒙层效果的组件?这个组件根据某个条件显示或隐藏蒙层,用于表示图像是否已读。
1. 创建基础模板
首先,我们在模板中使用 div
包裹我们的图像组件 GraphImage
,并为最外层 div
设置 position: relative
。
<div style="position: relative">
<GraphImage :regNo="item.regNo" :showList="false" :zoom="true"
:modalWidth="400" :height="200" />//此处是图片
</div>
2. 添加条件渲染的蒙层
接下来,我们使用 Vue 的条件渲染 v-if
指令,在满足条件时显示蒙层
<div v-if="item.readFlag == '1'" class="overlay">已读</div>
这段代码确保只有当 item.readFlag
等于 '1'
时,蒙层才会显示。
3. 定义蒙层样式
最后,我们添加蒙层的 CSS 样式,使其覆盖图像并显示居中的“已读”文字。
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(128, 128, 128, 0.5); /* 半透明黑色蒙层 */
display: flex;
align-items: center;
justify-content: center;
color: white;
z-index: 1;
font-size: 20px;
font-weight: bold;
}