Bootstrap

使用纯 CSS 实现超酷炫的粘性气泡效果

🚀 优质资源分享 🚀

学习路线指引(点击解锁) 知识定位 人群定位
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

最近,在 CodePen 上看到这样一个非常有意思的效果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h9gfqLEW-1656996688611)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/dfdaaa08049e4df49e047e973c5106ad~tplv-k3u1fbpfcp-watermark.image?)]

这个效果的核心难点在于气泡的一种特殊融合效果。

其源代码在:CodePen Demo – Goey footer,作者主要使用的是 SVG 滤镜完成的该效果,感兴趣的可以戳源码看看。

其中,要想灵活运用 SVG 中的 feGaussianBlur 滤镜还是需要有非常强大的 SVG 知识储备的。那么,仅仅使用 CSS 能否实现该效果呢?

嘿嘿,强大的 CSS 当然是可以的。本文,就将带领大家一步步使用纯 CSS,完成上述效果。

借助 SASS 完成大致效果

首先,如果上述效果没有气泡的融合效果,可能就仅仅是这样:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zewdRI8F-1656996688615)(https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bf1a317a414e405e8006d5cb9b39f8c9~tplv-k3u1fbpfcp-watermark.image?)]

要制作这样一个效果还是比较简单的,只是代码会比较多,我们借助 SASS 预处理器即可。

假设我们有如下 HTML 结构:

<div class="g-wrap">
  <div class="g-footer">
    <div class="g-bubble">div>
    <div class="g-bubble">div>
    // ... 200 个 g-bubble
  div>
div>

核心要做的,仅仅是让 200 个 .g-bubble 从底部无规律的进行向上升起的动画。

这里,就需要运用我们在 深入浅出 CSS 动画 这篇文章中所介绍的一种技巧 – 利用 animation-duration 和 animation-delay 构建随机效果

利用 animation-duration 和 animation-delay 构建随机效果

同一个动画,我们利用一定范围内随机的 animation-duration 和一定范围内随机的 animation-delay

;