广告位联系
返回顶部
分享到

CSS loading效果之吃豆人的实现方法教程

css 来源:互联网搜集 作者:秩名 发布时间:2019-09-10 16:11:50 人浏览
摘要

前言 这是一个用来练习的css demo,如果有哪里写的不好,还请各位指正,一定虚心接受。嘻嘻 HTML布局 div class=container div class=loading div class=eat/div div class=load/div div class=load/div div class=load/div /div/div CSS 样式 主要使用了动

前言

这是一个用来练习的css demo,如果有哪里写的不好,还请各位指正,一定虚心接受。嘻嘻

HTML布局
 

 
<div class="container">
  <div class="loading">
    <div class="eat"></div>
    <div class="load"></div>
    <div class="load"></div>
    <div class="load"></div>
  </div>
</div>

CSS 样式
 
主要使用了动画效果,通过不断控制元素的角度位置实现一个类似于吃豆人一样的loading demo。



body {
  margin: 0;
  padding: 0;
  background: #fff;
}
.container {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.loading {
  position: relative;
  width: 200px;
  height: 50px;
  display: flex;
}
.eat {
  position: relative;
  width: 50px;
  height: 50px;
  left: 0;
  color: #ff0000;
  animation: eat-animate 2.4s ease-in-out infinite;
}
@keyframes eat-animate {
  100% {
    left: 150px;
  }
}
.eat::before {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  width: 50px;
  height: 25px;
  top: 0;
  border-radius: 50px 50px 0 0;
  background: currentColor;
  transform: rotate(-30deg);
  animation: eat-top 2.4s ease-in-out infinite;
}
@keyframes eat-top {
  20% {
    transform: rotate(-30deg);
  }
  35% {
    transform: rotate(0deg);
  }
  45% {
    transform: rotate(-30deg);
  }
  60% {
    transform: rotate(0deg);
  }
  70% {
    transform: rotate(-30deg);
  }
  85% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
.eat::after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  width: 50px;
  height: 25px;
  bottom: 0;
  border-radius: 0 0 50px 50px;
  background: currentColor;
  transform: rotate(30deg);
  animation: eat-bottom 2.4s ease-in-out infinite;
}
@keyframes eat-bottom {
  20% {
    transform: rotate(30deg);
  }
  35% {
    transform: rotate(0deg);
  }
  45% {
    transform: rotate(30deg);
  }
  60% {
    transform: rotate(0deg);
  }
  70% {
    transform: rotate(30deg);
  }
  85% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(0deg);
  }
}
.load {
  position: relative;
  width:30px;
  height: 30px;
  margin: 10px;
  color: #e47272;
  border-radius: 50%;
  background: currentColor;
}
.load:nth-child(2) {
  animation: load1 2.4s linear infinite;
  transform: scale(1);
}
@keyframes load1 {
  35% {
    transform: scale(0);
  }
  100% {
    transform: scale(0);
  }
}
.load:nth-child(3) {
  animation: load2 2.4s linear infinite;
  transform: scale(1);
}
@keyframes load2 {
  30% {
    transform: scale(1);
  }
  58% {
    transform: scale(0);
  }
  100% {
    transform: scale(0);
  }
}
.load:nth-child(4) {
  animation: load3 2.4s linear infinite;
  transform: scale(1);
}
@keyframes load3 {
  60% {
    transform: scale(1);
  }
  80% {
    transform: scale(0);
  }
  100% {
    transform: scale(0);
  }
}

 

Preview



 

版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://www.jb51.net/css/692436.html
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计