当前位置: 首页 > news >正文

【css酷炫效果】纯CSS实现气泡上升动画

【css酷炫效果】纯CSS实现气泡上升动画

  • 创作背景
  • html结构
  • css样式
  • 完整代码
    • 基础版
    • 进阶版(随机气泡)
  • 效果图

今天,我们将探讨如何使用纯CSS来实现一个气泡上升动画。
想直接拿走的老板,链接放在这里:https://download.csdn.net/download/u011561335/90490495

创作随缘,不定时更新。

创作背景

刚看到csdn出活动了,赶时间,直接上代码。

html结构


    <div class="bubble-container">
        <div class="bubble"></div>
        <div class="bubble"></div>
        <div class="bubble"></div> 
        <div class="bubble"></div> 
        <div class="bubble"></div> 
        <div class="bubble"></div> 
    </div>

css样式

	body {
		margin: 0;
		padding: 0;
		overflow: hidden; /* 防止滚动条出现 */
		background-color: #87CEEB; /* 浅蓝色背景 */
	}
	 
	.bubble-container {
		position: relative;
		width: 100%;
		height: 100vh; /* 视口高度 */
	}
	 
	.bubble {
		position: absolute;
		bottom: -50px; /* 初始位置在视口外 */
		width: 40px;
		height: 40px;
		background-color: rgba(255, 255, 255, 0.7); /* 半透明白色 */
		border-radius: 50%; /* 圆形 */
		opacity: 0; /* 初始透明度为0 */
		animation: rise 4s infinite ease-in-out; /* 应用动画 */
	}
	
	@keyframes rise {
    0% {
        transform: translateY(0); /* 初始位置(虽然在视口外,但这里设为0是为了动画的连续性) */
        opacity: 0; /* 初始透明度 */
    }
    20% {
        opacity: 1; /* 逐渐增加透明度 */
    }
    100% {
        transform: translateY(-100vh); /* 上升到视口外 */
        opacity: 0; /* 透明度逐渐减小到0 */
    }
}

完整代码

基础版

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>旗袍</title>
	<style>
	body {
		margin: 0;
		padding: 0;
		overflow: hidden; /* 防止滚动条出现 */
		background-color: #87CEEB; /* 浅蓝色背景 */
	}
	 
	.bubble-container {
		position: relative;
		width: 100%;
		height: 100vh; /* 视口高度 */
	}
	 
	.bubble {
		position: absolute;
		bottom: -50px; /* 初始位置在视口外 */
		width: 40px;
		height: 40px;
		background-color: rgba(255, 255, 255, 0.7); /* 半透明白色 */
		border-radius: 50%; /* 圆形 */
		opacity: 0; /* 初始透明度为0 */
		animation: rise 4s infinite ease-in-out; /* 应用动画 */
	}
	
	@keyframes rise {
    0% {
        transform: translateY(0); /* 初始位置(虽然在视口外,但这里设为0是为了动画的连续性) */
        opacity: 0; /* 初始透明度 */
    }
    20% {
        opacity: 1; /* 逐渐增加透明度 */
    }
    100% {
        transform: translateY(-100vh); /* 上升到视口外 */
        opacity: 0; /* 透明度逐渐减小到0 */
    }
}

	</style>
</head>
<body>
    <div class="bubble-container">
        <div class="bubble"></div>
        <div class="bubble"></div>
        <div class="bubble"></div> 
        <div class="bubble"></div> 
        <div class="bubble"></div> 
        <div class="bubble"></div> 
    </div>
</body>
</html>

进阶版(随机气泡)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>旗袍</title>
	<style>
	body {
		margin: 0;
		padding: 0;
		overflow: hidden; /* 防止滚动条出现 */
		background-color: #87CEEB; /* 浅蓝色背景 */
	}
	 
	.bubble-container {
		position: relative;
		width: 100%;
		height: 100vh; /* 视口高度 */
	}
	 
	.bubble {
		position: absolute;
		bottom: -50px; /* 初始位置在视口外 */
		width: 40px;
		height: 40px;
		background-color: rgba(255, 255, 255, 0.7); /* 半透明白色 */
		border-radius: 50%; /* 圆形 */
		opacity: 0; /* 初始透明度为0 */
		animation: rise 4s infinite ease-in-out; /* 应用动画 */
	}
	.bubble:nth-child(1) {
		left: 10%; /* 第一个气泡的初始位置 */
		animation-delay: 0s; /* 第一个气泡的动画延迟 */
	}

	.bubble:nth-child(2) {
		left: 30%; /* 第二个气泡的初始位置 */
		animation-delay: 1s; /* 第二个气泡的动画延迟 */
		width: 60px; /* 可以为不同气泡设置不同大小 */
		height: 60px;
	}

	.bubble:nth-child(3) {
		left: 50%; /* 第三个气泡的初始位置 */
		animation-delay: 2s; /* 第三个气泡的动画延迟 */
		transform: translateX(-50%); /* 水平居中 */
	}

	/* 可以继续为更多气泡添加样式 */

	@keyframes rise {
    0% {
        transform: translateY(0); /* 初始位置(虽然在视口外,但这里设为0是为了动画的连续性) */
        opacity: 0; /* 初始透明度 */
    }
    20% {
        opacity: 1; /* 逐渐增加透明度 */
    }
    100% {
        transform: translateY(-100vh); /* 上升到视口外 */
        opacity: 0; /* 透明度逐渐减小到0 */
    }
}

	</style>
</head>
<body>
    <div class="bubble-container">
        <div class="bubble"></div>
        <div class="bubble"></div>
        <div class="bubble"></div> 
        <div class="bubble"></div> 
        <div class="bubble"></div> 
        <div class="bubble"></div> 
    </div>
</body>
</html>

效果图

在这里插入图片描述

相关文章:

  • C语言及内核开发中的回调机制与设计模式分析
  • 【NLP】 12. 解决不同长度文本问题,RNN, LSTM,双重RNN,双向递归神经网络
  • 【css酷炫效果】纯CSS实现立体纸张折叠动效
  • 《AI大模型趣味实战》 No3:快速搭建一个漂亮的AI家庭网站-相册/时间线/日历/多用户/个性化配色/博客/聊天室/AI管家(下)
  • Redis 持久化机制:AOF 与 RDB 详解
  • Django 集成 Redis 数据库指南
  • Kafka跨集群数据备份与同步:MirrorMaker运用
  • C语言经典代码题
  • 启动、关闭集群
  • 算法及数据结构系列 - 二分查找
  • Uniapp 字体加载问题(文件本地存储)
  • Go语言中的错误处理与异常恢复:性能对比与实践思考
  • re题(46)BUUCTF-[WUSTCTF2020]level4
  • Spring Boot 集成高德地图电子围栏
  • Redis hyperloglog学习
  • Gymnasium学习笔记
  • C语言【常用】【字符函数 和 字符串函数】详解加模拟实现
  • 分布式文件系统Minio
  • 鸿蒙编译框架@ohos/hvigor FileUtil用法
  • 时序优化学习笔记
  • 马克思主义理论研究教学名师系列访谈|杜玉华:马克思主义是“认识世界”和“改变世界”的思维工具
  • “ChatGPT严选”横空出世了,“DeepSeek严选”还要等多久?
  • 习近平对辽宁辽阳市白塔区一饭店火灾事故作出重要指示
  • 杭州6宗涉宅用地收金125.76亿元,萧山区地块楼面价冲破5万元/平米
  • 全国电影工作会:聚焦扩大电影国际交流合作,提升全球影响力
  • 上海明天起进入“升温通道”,五一假期冲刺33℃