svg实现火苗燃烧铃铛摇摆提醒动画效果代码

代码语言:html

所属分类:动画

代码描述:svg实现火苗燃烧铃铛摇摆提醒动画效果代码

代码标签: svg 火苗 燃烧 铃铛 摇摆 提醒 动画

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  

  
  
<style>
@import url("https://fonts.googleapis.com/css2?family=Archivo+Black&display=swap");
html {
  font-size: 12px;
}

body {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100vh;
  background-color: #f5fccd;
  font-family: "Archivo Black", "Arial Black", sans-serif;
  font-size: 2rem;
  overflow: hidden;
}

.bell {
  position: relative;
}
.bell__icon-background {
  position: absolute;
  z-index: -1;
  top: -10%;
  left: -10%;
  width: 120%;
  height: 120%;
  background: linear-gradient(#fff 50%, #ff7d66 200%);
  background-size: 100% 200%;
  background-position: 0 0;
  border-radius: 30%;
  box-shadow: 0 0.5rem 0 0 rgba(0, 0, 56, 0.1);
}
.bell__icon-shadow {
  position: absolute;
  opacity: 0.2;
  transform-origin: top;
  animation: ring;
  animation-duration: 3s;
  animation-iteration-count: infinite;
  animation-delay: -0.04s;
}
.bell__icon {
  transform-origin: top;
  animation: ring;
  animation-duration: 3s;
  animation-iteration-count: infinite;
}
@keyframes ring {
  0%, 50% {
    transform: rotate(0);
  }
  10%, 30% {
    transform: rotate(-30deg);
  }
  20%, 40% {
    transform: rotate(30deg);
  }
}
.bell__icon-tip {
  position: absolute;
  bottom: 0;
  left: 0;
  transform: rotate(8deg);
  transform-origin: top;
  animation: ring-tip;
  animation-duration: 3s;
  animation-iteration-count: infinite;
}
@keyframes ring-tip {
  0%, 50% {
    transform: rotate(8deg);
  }
  10%, 30% {
    transform: rotate(-10deg);
  }
  20%, 40% {
    transform: rotate(30deg);
  }
}
.bell:after {
  content: "3";
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 2.5rem;
  height: 2.5rem;
  color: #ff7d66;
  animation-duration: 3s;
  animation-iteration-count: infinite;
}
@keyframes number {
  0%, 50% {
    transform: rotate(0deg);
  }
  10%, 30% {
    transform: rotate(-10deg);
  }
  20%, 40% {
    transform: rotate(10deg);
  }
}

.fire {
  position: absolute;
  top: -14.5rem;
  right: -8.8rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 20rem;
  height: 20rem;
  animation-duration: 1s;
  animation-iteration-count: infinite;
}
.fire__part {
  position: absolute;
}
@keyframes flames {
  0%, 100% {
    transform: scale3d(0.8, 1.1, 1) rotate(1deg);
  }
  20% {
    transform: scale3d(0.9, 1, 1) rotate(4deg);
  }
  40% {
    transform: scale3d(0.8, 1.2, 1) rotate(2deg);
  }
  60% {
    transform: scale3d(0.9, 1, 1) rotate(-4deg);
  }
  80% {
    transform: scale3d(0.8, 1.2, 1) rotate(-2deg);
  }
}
.fire__part--red {
  bottom: 2rem;
  width: 8rem;
  height: 8rem;
  background: #ff7d66;
  border-radius: 50%;
  transform-origin: bottom;
  animation: flames;
  animation-duration: 6s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-delay: -0.6s;
}
.fire__part--orange {
  bottom: 2.5rem;
  width: 6rem;
  height: 6rem;
  background: orange;
  border-radius: 50%;
  transform-origin: bottom;
  animation: flames;
  animation-duration: 6s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-delay: -0.4s;
}
.fire__part--yellow {
  bottom: 3rem;
  width: 4rem;
  height: 4rem;
  background: #f5fccd;
  border-radius: 50%;
  transform-origin: bottom;
  animation: flames;
  animation-duration: 6s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-delay: -0.2s;
}
</style>

  
  
</head>

<body translate="no">
  <div class="bell">
  <div class="bell__icon-background"></div>
  <div class="fire">
    <div class="fire__part fire__part--red"></div>
    <div class="fire__part fire__part--orange"></div>
    <div class="fire__part fire__part--yellow"></div>
  </div>&l.........完整代码请登录后点击上方下载按钮下载查看

网友评论0