css 如何实现鼠标悬停图片变亮的效果?
https://mdbootstrap.com/docs/b4/jquery/javascript/lightbox
这个网站上的效果是怎么实现的? 问题关键: 图片和遮罩重叠, 而且遮罩在图片的上面, 导致点击不到图片
目前项目中用到了 viewer.js 插件, 是一个图片查看器, 通过点击图片来触发一个弹窗我原先想的是在图片上面加一层 before 伪类, 实现悬停显示半透明白色背景, 代码如下
.item > .image:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0);
transition: all .5s;
}
.item > .image:hover:before {
background-color: rgba(var(--rxc-light-rgb), .3);
}
html 结构如下
`<div class="item col-12 col-md-6 col-xl-4 mb-5">
<div class="image mb-2">
<img src="../images/seek-advice-from-photo/${item.src}" class="w-100 h-100">
</div>
<div class="text">
<div class="title font-weight-bold part-fs-lg">${item.title}</div>
<div class="date part-fs-md text-black-50">${dateString}</div>
</div>
</div>`
但是在悬停的时候, 恰好那层半透明白色背景挡在了图片前面, 导致鼠标无法点击到图片, 也触发不了 viewer.js
图片查看的事件
回复
1个回答

test
2024-07-08
很简单啊,使用 :hover 选择器在鼠标经过时修改图片的 opacity属性就可以了,但是需要保证图片容器的底色是白色的。
当然你的方式也是可以,如果想要鼠标可以点击穿透上面的 :before
伪类遮罩层,给 :before
伪类的 pointer-events CSS属性设置为 none
就行了
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容