CSS实现漂浮的气球

简介: CSS实现漂浮的气球

效果图

image.png

页面结构

我们拥有一个#app盒子作为承载盒子,里面的.balloon_box盒子作为气球和气球阴影的承载体,.balloon是气球盒子,.balloon_shadow是气球阴影盒子

<div id="app">
    <div class="balloon_box">
      <!-- 气球 -->
      <div class="balloon"></div>
      <!-- 气球阴影 -->
      <div class="balloon_shadow"></div>
    </div>
  </div>

初始样式

清除所有盒子的内外边距,在让#app盒子铺满整个页面,在给他一个背景色,通过flex布局设置元素居中

* {
      margin: 0;
      padding: 0;
    }
    #app {
      width: 100vw;
      height: 100vh;
      background: #acec96;
      display: flex;
      justify-content: center;
      align-items: center;
    }

气球承载盒子

我们后期需要使用到定位,所以将承载的盒子设置为相对定位

/* 气球大盒子 */
    .balloon_box {
      position: relative;
    }

气球实现

气球我们这里也使用相对定位,在给它对应的宽高,使用边框圆角属性结合css的旋转属性实现一个气球的样子,在给上背景色就好了,气球绳子我们这里使用子绝父相,我们利用伪元素的方式进行实现,设置好宽高,通过定位的方式放到合适的位置

/* 气球 */
    .balloon {
      position: relative;
      width: 200px;
      height: 200px;
      background: red;
      border-radius: 50% 50% 25% 50%;
      transform:  rotate(45deg);
    }
/* 气球绳子 */
.balloon::after{
  content:'';
  width: 70px;
  height: 1px;
  background: #000;
  position: absolute;
  bottom:-10px;
 right: 5px;
  transform: translate(70%)  rotate(45deg);
}

气球阴影实现

我们设置好宽高,设置好背景色,通过定位的方式定位到气球的正下方位置

/* 气球阴影 */
    .balloon_shadow {
      width: 120px;
      height: 20px;
      position: absolute;
      left: calc(50% - 60px);
      bottom: -150px;
      border-radius: 50%;
      background: rgba(0, 0, 0, 0.2);
    }

气球漂浮实现

气球漂浮我们采用CSS动画的方式进行实现,通过css属性控制气球的Y轴移动,设置好速度和动画执行秒数后我们开启无限循环和反向播放动画属性,使得气球有一个上下浮动的效果

/* 气球 */
    .balloon {
      position: relative;
      width: 200px;
      height: 200px;
      background: red;
      border-radius: 50% 50% 25% 50%;
      animation: float 3s linear infinite alternate;
    }
/* 气球漂浮动画 */
    @keyframes float {
      0% {
        transform: translateY(0) rotate(45deg);
      }
      100% {
        transform: translateY(-80px) rotate(45deg);
      }
    }

气球阴影变化实现

气球阴影这里我们使用到了CSS的scale属性,结合CSS动画的方式我们对元素进行放大与缩小,和气球漂浮设置的时间需要设置为一致,然后在设置好无限播放和反向播放,这样可以配合气球实现阴影的近小远大的效果

/* 气球阴影 */
    .balloon_shadow {
      width: 120px;
      height: 20px;
      position: absolute;
      left: calc(50% - 60px);
      bottom: -150px;
      border-radius: 50%;
      background: rgba(0, 0, 0, 0.2);
      animation: shadow 3s linear infinite alternate;
    }
/* 阴影动画 */
    @keyframes shadow {
      0% {
        transform: scale(0.5);
      }
      100% {
        transform: scale(1);
      }
    }

代码我已经放到码上掘金上了,感兴趣的可以看一下!

image.png

相关文章
|
前端开发
HTML+CSS制作漂浮的对话框
HTML+CSS制作漂浮的对话框
|
4月前
|
前端开发
2s 利用 HTML+css动画实现企业官网效果
2s 利用 HTML+css动画实现企业官网效果
HTML+CSS 实现通用的企业官网页面(记得收藏)
HTML+CSS 实现通用的企业官网页面(记得收藏)
|
14天前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
30 7
|
14天前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
27 6
|
14天前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
29 5
|
14天前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
21 5
|
2月前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML和CSS之旅
【9月更文挑战第32天】在这个数字化的时代,拥有一个个人博客不仅是展示自我的平台,也是技术交流的桥梁。本文将引导初学者理解并实现一个简单的个人博客网站的搭建,涵盖HTML的基础结构、CSS样式的美化技巧以及如何将两者结合来制作一个完整的网页。通过这篇文章,你将学会如何从零开始构建自己的网络空间,并在互联网世界留下你的足迹。
|
1月前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
102 6