CSS3 天气图标动画效果


Posted in HTML / CSS onApril 06, 2021

实现效果

CSS3 天气图标动画效果

实现代码

html

<div class="wrapper">
  <div class="sun"></div>
  <div class="cloud">
    <div class="cloud1">
      <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
      </ul>
    </div>
    <div class="cloud1 c_shadow">
      <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
      </ul>
    </div>
  </div>
  
  <div class="cloud_s">
    <div class="cloud1">
      <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
      </ul>
    </div>
    <div class="cloud1 c_shadow">
      <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
      </ul>
    </div>
  </div>
  
  <div class="cloud_vs">
    <div class="cloud1">
      <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
      </ul>
    </div>
    <div class="cloud1 c_shadow">
      <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
      </ul>
    </div>
  </div>
  <div class="haze"></div>
  <div class="haze_stripe"></div>
  <div class="haze_stripe"></div>
  <div class="haze_stripe"></div>
  <div class="thunder"></div>
  <div class="rain">
     <ul>
       <li></li>
       <li></li>
       <li></li>
    </ul>
  </div>
  <div class="sleet">
     <ul>
       <li></li>
       <li></li>
       <li></li>
    </ul>
  </div>
  <div class="text">
    <ul>
      <li>Mostly Sunny</li>
      <li>Partly Sunny</li>
      <li>Partly Cloudy</li>
      <li>Mostly Cloudy</li>
      <li>Cloudy</li>
      <li>Hazy</li>
      <li>Thunderstorm</li>
      <li>Rain</li>
      <li>Sleet</li>
    </ul>
  </div>
</div>

css3

@import url(https://fonts.googleapis.com/css?family=Raleway+Dots);

body{
  margin: 0;
  padding: 0;
  background: #33495f;
}

.wrapper{
  width: 150px;
  height: 150px;
  position: absolute;
  top: calc(50% - 75px);
  left: calc(50% - 75px);
}

.sun{
  position: absolute;
  bottom: 0px;
  right: 0px;
  width: 85px;
  height: 85px;
  background: #f9db62;
  border-radius: 360px;
  opacity: 1;
  animation: sun 10s 0s linear infinite;
}

.cloud{
  position: absolute;
  bottom: 12px;
  left: 8px;
  z-index: 2;
  opacity: 0;
  animation: cloud 10s 0s linear infinite;
}

.cloud .cloud1:not(.c_shadow) ul li{
  animation: cloudi 10s 0.1s linear infinite;
}

.cloud .cloud1:not(.c_shadow):before{
  animation: cloudi 10s 0s linear infinite;
}

.cloud_s{
  position: absolute;
  bottom: 70px;
  left: 150px;
  transform: scale(0.7,0.7) matrix(-1, 0, 0, 1, 0, 0);
  z-index: 1;
  opacity: 0;
  animation: cloud_s 10s 0s linear infinite;
}

.cloud_s .c_shadow{
  transform: scale(1.02,1.02);
}

.cloud_vs{
  position: absolute;
  bottom: 90px;
  left: 30px;
  transform: scale(0.5,0.5);
  z-index: 0;
  opacity: 0;
  animation: cloud_vs 10s 0s linear infinite;
}

.c_shadow{
  z-index: 4 !important;
  left: -5px;
  bottom: -3px !important;
}

.c_shadow:before{
  background: #33495f !important;
}

.c_shadow ul li{
  width: 60px !important;
  height: 60px !important;
  background: #33495f !important;
  float: left;
  position: absolute;
  bottom: -2px !important;
  border-radius: 360px;
}

.c_shadow ul li:nth-child(2){
  width: 80px !important;
  height: 80px !important;
  background: #33495f !important;
  float: left;
  border-radius: 360px;
  position: absolute;
  bottom: 16px !important;
  left: 25px !important;
}

.c_shadow ul li:nth-child(3){
  width: 70px !important;
  height: 70px !important;
  background: #33495f !important;
  float: left;
  border-radius: 360px;
  position: absolute;
  bottom: 6px !important;
  left: 60px !important;
}

.c_shadow ul li:last-child{
  width: 60px !important;
  height: 60px !important;
  background: #33495f !important;
  float: left;
  border-radius: 360px;
  position: absolute;
  bottom: 0px;
  left: 90px;
}


.cloud1{
  position: absolute;
  bottom: 0px;
  z-index: 5;
}

.cloud1:before{
  content: '';
  position: absolute;
  bottom: 0px;
  left: 28px;
  width: 90px;
  height: 20px;
  background: #fff;
}

.cloud1 ul{
  list-style: none;
  margin: 0;
  padding: 0;
}

.cloud1 ul li{
  width: 50px;
  height: 50px;
  background: #fff;
  float: left;
  border-radius: 360px;
}

.cloud1 ul li:nth-child(2){
  width: 70px;
  height: 70px;
  background: #fff;
  float: left;
  border-radius: 360px;
  position: absolute;
  bottom: 18px;
  left: 25px;
}

.cloud1 ul li:nth-child(3){
  width: 60px;
  height: 60px;
  background: #fff;
  float: left;
  border-radius: 360px;
  position: absolute;
  bottom: 8px;
  left: 60px;
}

.cloud1 ul li:last-child{
  width: 50px;
  height: 50px;
  background: #fff;
  float: left;
  border-radius: 360px;
  position: absolute;
  bottom: 0px;
  left: 90px;
}

.haze{
  background: #33495f;
  position: absolute;
  bottom: 50px;
  left: 0px;
  width: 200px;
  height: 45px;
  z-index: 6;
  opacity: 0;
  animation: haze 10s 0s linear infinite;
}

.haze_stripe{
  background: #a3b5c7;
  position: absolute;
  bottom: 75px;
  left: 20px;
  width: 115px;
  height: 10px;
  z-index: 17;
  opacity: 0;
  border-radius: 360px;
  animation: haze_stripe 10s 0.1s linear infinite;
}

.haze_stripe:nth-child(6){
  bottom: 55px;
  animation: haze_stripe 10s 0.2s linear infinite;
}
.haze_stripe:last-child{
  bottom: 35px;
  animation: haze_stripe 10s 0.4s linear infinite;
}

.thunder{
  position: absolute;
  bottom: 100px;
  left: 65px;
  width: 12px;
  height: 12px;
  background: #f9db62;
  transform: skew(-25deg);
  opacity: 0;
  animation: thunder 10s 0s linear infinite;
}

.thunder:before{
  content: '';
  position: absolute;
  top: 11px;
  left: 0px;
  width: 25px;
  height: 8px;
  background: #f9db62;
}

.thunder:after{
  content: '';
  position: absolute;
  width: 0; 
  height: 0;
  top: 18px;
  right: -14px;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  
  border-top: 20px solid #f9db62;
  transform: skew(5deg);
}

.rain{
  position: absolute;
  bottom: 0px;
  left: 25px;
}

.rain ul{
  list-style: none;
  margin: 0;
  padding: 0px;
}

.rain ul li{
  float: left;
  position: absolute;
  bottom: 50px;
  left: 50px;
  margin-left: 20px;
  background: #6ab9e9;
  height: 40px;
  width: 10px;
  border-radius: 360px;
  transform: rotate(35deg);
  opacity: 0;
}

.rain ul li:first-child{
  animation: raini 10s 0s linear infinite;
}

.rain ul li:nth-child(2){
  animation: rainii 10s 0.2s linear infinite;
}

.rain ul li:last-child{
  animation: rainiii 10s 0.4s linear infinite;
}

.sleet{
  position: absolute;
  bottom: 0px;
  left: 25px;
}

.sleet ul{
  list-style: none;
  margin: 0;
  padding: 0px;
}

.sleet ul li{
  float: left;
  position: absolute;
  bottom: 50px;
  left: 50px;
  margin-left: 20px;
  background: #fff;
  height: 40px;
  width: 10px;
  border-radius: 360px;
  transform: rotate(35deg);
  opacity: 0;
}

.sleet ul li:first-child{
  animation: raini 10s 1.0s linear infinite;
}

.sleet ul li:nth-child(2){
  animation: rainii 10s 1.4s linear infinite;
}

.sleet ul li:last-child{
  animation: rainiii 10s 1.6s linear infinite;
}

.text{
  position: absolute;
  bottom: 0px;
}

.text ul{
  list-style: none;
  margin: 0;
  padding: 0;
}

.text ul li{
  position: absolute;
  bottom: -50px;
  width: 150px;
  color: #fff;
  font-family: 'Raleway Dots', cursive;
  font-weight: 100;
  font-size: 20px;
  text-align: center;
  opacity: 0;
}

.text ul li:first-child{
  animation: fade_in 10.0s 0s linear infinite;
}

.text ul li:nth-child(2){
  animation: fade_in 10.0s 1.6s linear infinite;
}

.text ul li:nth-child(3){
  animation: fade_in 10.0s 2.4s linear infinite;
}

.text ul li:nth-child(4){
  animation: fade_in 10.0s 3.4s linear infinite;
}

.text ul li:nth-child(5){
  animation: fade_in 10.0s 4.0s linear infinite;
}

.text ul li:nth-child(6){
  animation: fade_in 10.0s 5.4s linear infinite;
}

.text ul li:nth-child(7){
  animation: fade_in 10.0s 6.4s linear infinite;
}

.text ul li:nth-child(8){
  animation: fade_in 10.0s 7.2s linear infinite;
}

.text ul li:nth-child(9){
  animation: fade_in 10.0s 8.2s linear infinite;
}

@keyframes sun{
  0%{
    opacity: 1;
    bottom: 35px;
    right: 35px;
  }
  4%{
    bottom: 80px;
    right: 80px;
  }
  4.5%{
    bottom: 75px;
    right: 75px;
    opacity: 1;
  }
  40%{
    opacity: 1;
  }
  41%{
    bottom: 75px;
    right: 75px;
    opacity: 0;
  }
  100%{
    opacity: 0;
    bottom: 0px;
    right: 0px;
  }
}

@keyframes cloud{
  0%{
    transform: scale(0.8);
    left: 120px;
    bottom: 35px;
    opacity: 0;
  }
  2%{
    opacity: 1;
  }
  3.5%{
    bottom: 35px;
    left: 10px;
    opacity: 1;
  }
  16%{
    transform: scale(0.8);
  }
  18%{
    transform: scale(0.95);
  }
  19%{
    transform: scale(0.9);
  }
  48%{
    opacity: 1;
    bottom: 35px;
  }
  50%{
    bottom: 70px;
  }
  64%{
    
  }
  96%{
    opacity: 1;
  }
  100%{
    opacity: 0;
    bottom: 70px;
    left: 10px;
  }
}

@keyframes cloud_s{
  0%{
    transform: scale(0.6);
    opacity: 0;
    bottom: 40px;
    left: 18px;
  }
  23%{
    opacity: 0;
  }
  24%{
    opacity: 1;
    bottom: 40px;
    left: 30px;
  }
  28%{
    opacity: 1;
    bottom: 85px;
    left: 60px;
  }
  32%{
    transform: scale(0.6);
  }
  34%{
    transform: scale(0.75);
  }
  35%{
    transform: scale(0.7);
  }
  48%{
    opacity: 1;
  }
  49%{
    opacity: 0;
  }
  100%{
    transform: scale(0.7);
    opacity: 0;
    bottom: 85px;
    left: 60px;
  }
}

@keyframes cloud_vs{
  0%{
    opacity: 0;
    bottom: 85px;
    left: 60px;
  }
  39%{
    opacity: 0;
  }
  40%{
    opacity: 1; 
    bottom: 85px;
    left: 60px;
  }
  42%{
    bottom: 125px;
    left: 10px;
  }
  43%{
    bottom: 120px;
    left: 15px;
  }
  48%{
    opacity: 1;
  }
  49%{
    opacity: 0;
  }
  100%{
    opacity: 0;
    bottom: 120px;
    left: 15px;
  }
}

@keyframes haze{
  0%{
    opacity: 0;
  }
  48%{
    height: 0px;
    opacity: 0;
  }
  49%{
    height: 45px;
    opacity: 1;
  }
  57%{
    opacity:1;
    height: 45px;
  }
  58%{
    opacity: 0;
    height: 0px;
  }
}

@keyframes haze_stripe{
  0%{
    opacity: 0;
  }
  48%{
    opacity: 0;
  }
  49%{
    opacity: 1;
  }
  56%{
    opacity:1;
  }
  57%{
    opacity: 0;
  }
}

@keyframes cloudi{
  0%{
    background: #fff;
  }
  56%{
    background: #fff;
  }
  57%{
    background: #92a4b6;
  }
  100%{
    background: #92a4b6;
  }
}

@keyframes thunder{
  0%{
    opacity: 0;
    bottom: 100px;
    left: 65px;
  }
  62%{
    opacity: 0;
    bottom: 100px;
    left: 65px;
  }
  64%{
    opacity: 1;
    bottom: 50px;
    left: 60px;
  }
  65%{
    opacity: 1;
    bottom: 55px;
    left: 61px;
  }
  72%{
    opacity: 1;
    bottom: 55px;
    left: 61px;
  }
  73%{
    opacity: 0;
  }
  100%{
    opacity: 0;
    bottom: 55px;
  }
}

@keyframes raini{
  0%{
    opacity: 0;
    bottom: 100px;
    left: 60px;
  }
  72%{
    opacity: 0;
    bottom: 100px;
    left: 60px;
  }
  73%{
    opacity: 1;
    bottom: 15px;
    left: 50px;
  }
  74%{
    opacity: 1;
    bottom: 25px;
    left: 52px;
  }
  80%{
    opacity: 1;
    bottom: 25px;
    left: 52px;
  }
  81%{
    opacity: 0;
    bottom: -15px;
    left: 6px;
  }
  100%{
    opacity: 0;
    bottom: 20px;
  }
}

@keyframes rainii{
  0%{
    opacity: 0;
    bottom: 100px;
    left: 30px;
  }
  72%{
    opacity: 0;
    bottom: 100px;
    left: 30px;
  }
  73%{
    opacity: 1;
    bottom: 15px;
    left: 20px;
  }
  74%{
    opacity: 1;
    bottom: 25px;
    left: 22px;
  }
  80%{
    opacity: 1;
    bottom: 25px;
    left: 22px;
  }
  81%{
    opacity: 0;
    bottom: -15px;
    left: -6px;
  }
  100%{
    opacity: 0;
    bottom: 20px;
  }
}

@keyframes rainiii{
  0%{
    opacity: 0;
    bottom: 100px;
    left: 0px;
  }
  72%{
    opacity: 0;
    bottom: 100px;
    left: 0px;
  }
  73%{
    opacity: 1;
    bottom: 15px;
    left: -10px;
  }
  74%{
    opacity: 1;
    bottom: 25px;
    left: -8px;
  }
  80%{
    opacity: 1;
    bottom: 25px;
    left: -8px;
  }
  81%{
    opacity: 0;
    bottom: -15px;
    left: -28px;
  }
  100%{
    opacity: 0;
    bottom: 20px;
  }
}

@keyframes fade_in{
  0%{
    opacity: 0;
  }
  8%{
    opacity: 1;
  }
  9%{
    opacity: 1;
  }
  11%{
    opacity: 1;
  }
  12%{
    opacity: 0;
  }
  100%{
    oapcity: 0;
  }
}

以上就是css3实现的天气图标动画效果的详细内容,更多关于css3 天气图标动画的资料请关注三水点靠木其它相关文章!

 
HTML / CSS 相关文章推荐
css 元素选择器的简单实例
May 23 HTML / CSS
利用css3画个同心圆示例代码
Jul 03 HTML / CSS
css3 中translate和transition的使用方法
Mar 26 HTML / CSS
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
Jun 06 HTML / CSS
html5 利用重力感应实现摇一摇换颜色可用来做抽奖等等
May 07 HTML / CSS
HTML5通用接口详解
Jun 12 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
Sep 09 HTML / CSS
h5页面背景图很长要有滚动条滑动效果的实现
Jan 27 HTML / CSS
html实现弹窗的实例
Jun 09 HTML / CSS
CSS Transition通过改变Height实现展开收起元素
Aug 07 HTML / CSS
使用CSS3实现按钮悬停闪烁动态特效代码
Aug 30 HTML / CSS
HTML中link标签属性的具体用法
May 07 HTML / CSS
CSS3 制作精美的定价表
CSS 圆形进度栏
CSS 文字装饰 text-decoration & text-emphasis 详解
奇妙的 CSS shapes(CSS图形)
html+css合并表格边框的示例代码
使用HTML+Css+transform实现3D导航栏的示例代码
z-index不起作用
Mar 31 #HTML / CSS
You might like
php 中的str_replace 函数总结
2007/04/27 PHP
php获取参数的几种方法总结
2014/02/18 PHP
php使用Jpgraph绘制柱形图的方法
2015/06/10 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
2016/08/29 PHP
php实现的网页版剪刀石头布游戏示例
2016/11/25 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
window.location.hash 属性使用说明
2010/03/20 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
浅谈json取值(对象和数组)
2016/06/24 Javascript
js初始化验证实例详解
2016/11/26 Javascript
javascript垃圾收集机制的原理分析
2016/12/08 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
D3.js进阶系列之CSV表格文件的读取详解
2017/06/06 Javascript
浅谈Vue-cli单文件组件引入less,sass,css样式的不同方法
2018/03/13 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
Python中的defaultdict模块和namedtuple模块的简单入门指南
2015/04/01 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
ktv总经理岗位职责
2014/02/17 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
军训拉歌口号
2014/06/13 职场文书
人大代表选举标语
2014/10/07 职场文书
护士求职简历自我评价
2015/03/10 职场文书
2015年端午节国旗下演讲稿
2015/03/19 职场文书
工作失职检讨书范文
2015/05/05 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL