使用:hover伪类配合transition实现图片悬停变亮、放大和加阴影效果,通过Filter、transform和box-shadow属性提升交互视觉层次。
想让图片在鼠标悬停时有视觉反馈,比如变亮、放大或加阴影,用css就能轻松实现。关键在于利用 :hover 伪类选择器,配合过渡动画让效果更自然。
基础悬停:图片变亮
通过调整透明度或亮度,可以让图片在悬停时显得更清晰。
使用 filter 属性控制图像滤镜:
- 默认状态设置 filter: brightness(80%); 让图片稍暗
- 悬停时取消滤镜:img:hover { filter: brightness(100%); }
- 加上 transition: filter 0.3s ease; 实现渐变过渡
缩放效果:轻微放大图片
让用户感觉图片“浮起”,增强交互感。
利用 transform 和 transform-origin 控制缩放行为:
- 给 img 设置 transform-origin: center; 确保从中心放大
- 默认 transform: scale(1); 悬停时 img:hover { transform: scale(1.05); }
- transition 加上 transform 属性,例如 0.3s ease-out
添加阴影和边框
提升层次感,适合卡片式布局中的图片。
立即学习“前端免费学习笔记(深入)”;
通过 box-shadow 和 border 实现立体效果:
- 默认 box-shadow: none; border: 2px solid transparent;
- img:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.15); border-color: #007bff; }
- 同样添加 transition 支持多个属性,如:all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1)
组合效果示例
把亮度、缩放和阴影结合起来,打造更丰富的悬停体验。
完整代码片段参考:
img { display: block; max-width: 100%; border-radius: 8px; filter: brightness(90%); transform-origin: center; transition: all 0.3s ease-out; } img:hover { filter: brightness(100%); transform: scale(1.03); box-shadow: 0 6px 16px rgba(0,0,0,0.1); }
基本上就这些,不复杂但容易忽略细节。只要合理使用 :hover 和 transition,再搭配 filter、transform、box-shadow 等属性,就能做出专业又流畅的图片悬停效果。
评论(已关闭)
评论已关闭