/* 定义灰度滤镜 */ .filter { filter: grayscale(100%); /* 在这里可以根据需要设置不同的滤镜效果 */ } /* 定义动画特性 */ @keyframes light { from { transform: translateX(-100%); } to { transform: translateX(100%); } } /* 将灰度滤镜和动画特性结合在一起 */ .glass { background: url(图片地址) fixed; background-repeat: no-repeat; background-size: cover; /* 下面是关键代码,通过给容器添加灰度滤镜和动画特性实现玻璃流光效果 */ position: relative; overflow: hidden; /* 灰度滤镜 */ &::before { content: ''; position: absolute; z-index: -1; width: 100%; height: 100%; background: inherit; filter: grayscale(100%); transition: 0.6s; } /* 动画特性 */ &::after { content: ''; position: absolute; z-index: -1; width: 100%; height: 100%; background: inherit; animation: light 3s ease infinite; } }
以上就是CSS玻璃流光特效实现的主要代码,需要注意的是,需要使用position:relative和overflow:hidden将容器包裹起来,以便给伪元素添加绝对定位和覆盖效果。另外,在伪元素加入灰度滤镜时,需要设置z-index为-1,以便确保图像在前方显示。