1 在盒子的前后或者后面利用伪元素添加一个遮罩层
2 利用定位将遮罩层定位在原盒子的旁边
3 给遮罩层设置倾斜
4 给遮罩层添加渐变
5 hover盒子让遮罩层平移经过盒子
6 给遮罩层或者hover后的遮罩层添加过渡,让体验更丝滑
<style> * { margin: 0; padding: 0; } .pic { overflow: hidden; position: relative; width: 192px; height: 108px; margin: 100px auto; } .pic img { width: 100%; } .pic::before { position: absolute; left: -110%; top: 0; content: ''; width: 100%; height: 100%; /* 倾斜 */ transform: skew(-30deg); /* 渐变 */ background-image: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0)); } .pic:hover::before { left: 110%; /* 过度 */ transition: all .5s; } </style>