您好,欢迎来到教玩游戏。
搜索
您的当前位置:首页CSS实现动态气泡背景代码分享

CSS实现动态气泡背景代码分享

来源:教玩游戏
 本文主要和大家介绍了CSS 动画实现动态气泡背景的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

今天的第一个任务是写个登录页面,老大给了我一个参(chao)考(xi)案例,大家点击链接就能看到。嗯,这个登录页面确实很简洁、大方,尤其是它的气泡背景,第一反应这应该是张动态图片,打开审查元素才发现原来这是用代码写的,一下子激起了宝宝的好奇心,所以也试着写了一个带气泡背景的登录页面,效果如下:

emm...为什么上传的 gif 动态图总是这么小,来补张截图:

(大家可以自行脑补这些背景气泡往上升的画面 :sob:)

只需一些简单的代码就可以实现这样的效果,

首先我们先定义10个 li 列表标签,我用的是 vue 框架:


<ul class="bg-bubbles">
 <li v-for="(item, index) in bubbles" :key="index"></li>
</ul>


created() {
 this.bubbles.length = 10;
 },

样式是用 less 编写的:


.bg-bubbles {
 position: absolute;
 // 使气泡背景充满整个屏幕
 top: 0;
 left: 0;
 width: 100%;
 height: 100%;
 li {
 position: absolute;
 // bottom 的设置是为了营造出气泡从页面底部冒出的效果;
 bottom: -160px;
 // 默认的气泡大小;
 width: 40px;
 height: 40px;
 background-color: rgba(255, 255, 255, 0.15);
 list-style: none;
 // 使用自定义动画使气泡渐现、上升和翻滚;
 animation: square 15s infinite;
 transition-timing-function: linear;
 // 分别设置每个气泡不同的位置、大小、透明度和速度,以显得有层次感;
 &:nth-child(1) {
 left: 10%;
 }
 &:nth-child(2) {
 left: 20%;
 width: 90px;
 height: 90px;
 animation-delay: 2s;
 animation-duration: 7s;
 }
 &:nth-child(3) {
 left: 25%;
 animation-delay: 4s;
 }
 &:nth-child(4) {
 left: 40%;
 width: 60px;
 height: 60px;
 animation-duration: 8s;
 background-color: rgba(255, 255, 255, 0.3);
 }
 &:nth-child(5) {
 left: 70%;
 }
 &:nth-child(6) {
 left: 80%;
 width: 120px;
 height: 120px;
 animation-delay: 3s;
 background-color: rgba(255, 255, 255, 0.2);
 }
 &:nth-child(7) {
 left: 32%;
 width: 160px;
 height: 160px;
 animation-delay: 2s;
 }
 &:nth-child(8) {
 left: 55%;
 width: 20px;
 height: 20px;
 animation-delay: 4s;
 animation-duration: 15s;
 }
 &:nth-child(9) {
 left: 25%;
 width: 10px;
 height: 10px;
 animation-delay: 2s;
 animation-duration: 12s;
 background-color: rgba(255, 255, 255, 0.3);
 }
 &:nth-child(10) {
 left: 85%;
 width: 160px;
 height: 160px;
 animation-delay: 5s;
 }
 }
 // 自定义 square 动画;
 @keyframes square {
 0% {
 opacity: 0.5;
 transform: translateY(0px) rotate(45deg);
 }
 25% {
 opacity: 0.75;
 transform: translateY(-400px) rotate(90deg)
 }
 50% {
 opacity: 1;
 transform: translateY(-600px) rotate(135deg);
 }
 100% {
 opacity: 0;
 transform: translateY(-1000px) rotate(180deg);
 }
 }
 }

至此,一个气泡背景图就完成了。回过头来看,确实不难,但也愈来愈让人感受到 css 动画的魅力和强大 :relaxed:。

Copyright © 2019- lvjiaowang.com 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务