Pulsating ring animation with CSS

前端 未结 1 2026
执念已碎
执念已碎 2021-01-06 13:47

I want to have an expanding radius that starts from the center of the div instead of it starting on the top left of the div.

Imagine the b

相关标签:
1条回答
  • 2021-01-06 14:28

    Here's a general solution using CSS flexbox, transform and pseudo-elements.

    body {
      display: flex;
      align-items: center;
      justify-content: center;
      background-color: lightyellow;
      height: 100vh;
      margin: 0;
    }
    #container {
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .sphere {
      display: flex;
      background: lightblue;
      border-radius: 300px;
      height: 100px;
      width: 100px;
    }
    #container::after {
      display: flex;
      background: lightpink;
      border-radius: 300px;
      height: 250px;
      width: 250px;
      animation: pulsate 2.5s ease-out;
      animation-iteration-count: infinite;
      opacity: 0.0;
      content: "";
      z-index: -1;
      margin: auto;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
    }
    @keyframes pulsate {
      0% {
        transform: scale(0.1, 0.1);
        opacity: 0.0;
      }
      50% {
        opacity: 1.0;
      }
      100% {
        transform: scale(1.2, 1.2);
        opacity: 0.0;
      }
    }
    <div id="container">
      <div class="sphere"></div>
    </div>

    jsFiddle

    Also see this awesome solution by @harry: How to create a pulsing glow ring animation in CSS?

    0 讨论(0)
提交回复
热议问题