最近,使用松构砂玻我们内部的建高级感景一个低代码平台完工上线,它的拉满璃渐首页大概是这样子(数据脱敏): 当然,这个不是变背项目不是本文的重点。主要看看这个页面的使用松构砂玻背景,一个磨砂(毛玻璃)质感效果的建高级感景渐变背景图,看上去是拉满璃渐比较高级的。 剥离掉页面的变背内容元素,只剩下背景的使用松构砂玻话,大概是建高级感景这样: 一开始是打算切图实现的,但是拉满璃渐仔细一想,这个效果使用 CSS 其实也可以非常轻松制作出来。变背本文就讨论讨论: 上述背景效果看似复杂,拉满璃渐其实非常的简单。源码库它就是: 多块不规则渐变背景 + 高斯模糊蒙版 在 CSS 中,也就是借助 background + backdrop-filter: blur() 即可实现。 去掉叠在上方的 高斯模糊蒙版,背后的元素其实非常简单明了。可能就是只是这样: 这里简单列下代码,我们使用了 3 个 div 实现了 3 个渐变图,每个图形再使用 clip-path 随机裁剪成不规则的多边形: 接下来,这一步最为关键,就是使用 backdrop-filter 实现高斯模糊蒙版。叠在上述几个元素上方即可,最关键的一行代码 backdrop-filter: blur(150px) 这样,我们就实现了如上图所示的毛玻璃质感效果的渐变背景图: 录制的 Gif 图看上去有点糊,你可以戳这里点进 DEMO 查看 -- CodePen Demo -- Frosted glass background effect[1] 注意,这里使用的是 backdrop-filter: blur(),而不是 filter: blur(),高防服务器如果你对这两个滤镜是使用选择还有所疑惑,可以看看的我的这篇文章讲解 -- 深入探讨 filter 与 backdrop-filter 的异同[2] 简单了解了原理之后,我们就可以借助 CSS-doodle 尝试批量来生成这个效果了。 CSS-doodle 它是一个基于 Web-Component 的库。允许我们快速的创建基于 CSS Grid 布局的页面,并且提供各种便捷的指令及函数(随机、循环等等),让我们能通过一套规则,得到不同 CSS 效果。感兴趣的可以猛击官网了解 -- CSS-doodle[3] 代码非常简单,也非常好理解,就是随机场景不同尺寸、不同定位、不同颜色、不同形式的几个图形: 上述代码会随机生成这样的图案(GIF 看不出鼠标的点击效果,每次切换是我点击页面进行的手动切换): 好,香港云服务器配合上蒙版,再看看效果,我们已经能够批量的去生成上述的背景效果了: 如果需求,配合上 hue-rotate 及简单的位移,我们甚至可以让这个渐变背景动画动起来,更加生动些: 这样,我们就得到了带动画的毛玻璃渐变背景: GIF 截图效果较差,完整的代码及效果体验你可以猛击这里 -- CodePen Demo -- CSS-doodle Pure CSS Background Effect[4] 好了,本文到此结束,希望本文对你有所帮助 :) [1]CodePen Demo -- Frosted glass background effect: https://codepen.io/Chokcoco/pen/mdBKgOK [2]深入探讨 filter 与 backdrop-filter 的异同: https://github.com/chokcoco/iCSS/issues/147 [3]CSS-doodle: https://css-doodle.com/ [4]CodePen Demo -- CSS-doodle Pure CSS Background Effect: https://codepen.io/Chokcoco/pen/gOGKNMm实现渐变图
使用 backdrop-filter 实现高斯模糊蒙版
借助 CSS-doodle 工具,批量产生该效果
最后
参考资料