Crafting Pulsing CSS Loader Animation

CSSCSSBeginner
Practice Now

This tutorial is from open-source community. Access the source code

Introduction

In this lab, we will learn how to create a pulse effect loader animation using CSS. We will use the animation-delay property to create a rhythmic effect and @keyframes to define the animation at two points in the cycle. By the end of this lab, you will have a good understanding of how to create engaging animations that can enhance the user experience of your web pages.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL css(("`CSS`")) -.-> css/BasicConceptsGroup(["`Basic Concepts`"]) css(("`CSS`")) -.-> css/BasicStylingGroup(["`Basic Styling`"]) css(("`CSS`")) -.-> css/CoreLayoutGroup(["`Core Layout`"]) css(("`CSS`")) -.-> css/DynamicStylingGroup(["`Dynamic Styling`"]) css(("`CSS`")) -.-> css/CSSPreprocessorsGroup(["`CSS Preprocessors`"]) css(("`CSS`")) -.-> css/IntermediateStylingGroup(["`Intermediate Styling`"]) css/BasicConceptsGroup -.-> css/selectors("`Selectors`") css/BasicStylingGroup -.-> css/colors("`Colors`") css/CoreLayoutGroup -.-> css/borders("`Borders`") css/CoreLayoutGroup -.-> css/width_and_height("`Width and Height`") css/CoreLayoutGroup -.-> css/positioning("`Positioning`") css/DynamicStylingGroup -.-> css/animations("`Animations`") css/CSSPreprocessorsGroup -.-> css/mixins("`Mixins`") css/IntermediateStylingGroup -.-> css/pseudo_classes("`Pseudo-classes`") subgraph Lab Skills css/selectors -.-> lab-35232{{"`Crafting Pulsing CSS Loader Animation`"}} css/colors -.-> lab-35232{{"`Crafting Pulsing CSS Loader Animation`"}} css/borders -.-> lab-35232{{"`Crafting Pulsing CSS Loader Animation`"}} css/width_and_height -.-> lab-35232{{"`Crafting Pulsing CSS Loader Animation`"}} css/positioning -.-> lab-35232{{"`Crafting Pulsing CSS Loader Animation`"}} css/animations -.-> lab-35232{{"`Crafting Pulsing CSS Loader Animation`"}} css/mixins -.-> lab-35232{{"`Crafting Pulsing CSS Loader Animation`"}} css/pseudo_classes -.-> lab-35232{{"`Crafting Pulsing CSS Loader Animation`"}} end

Pulse Loader

index.html and style.css have already been provided in the VM.

To create a pulse effect loader animation using the animation-delay property, follow these steps:

  1. Use @keyframes to define an animation for two <div> elements. Set the starting point (0%) for both elements to have no width or height and to be positioned at the center. For the ending point (100%), have both elements increase in width and height, but reset their position to 0.
  2. Use opacity to transition from 1 to 0 when animating to give the <div> elements a disappearing effect as they expand.
  3. Set a predefined width and height for the parent container, .ripple-loader. Use position: relative to position its children.
  4. Use animation-delay on the second <div> element, so that each element starts its animation at a different time.

Here is the HTML and CSS code to achieve this:

<div class="ripple-loader">
  <div></div>
  <div></div>
</div>
.ripple-loader {
  position: relative;
  width: 64px;
  height: 64px;
}

.ripple-loader div {
  position: absolute;
  border: 4px solid #454ade;
  border-radius: 50%;
  animation: ripple-loader 1s ease-out infinite;
}

.ripple-loader div:nth-child(2) {
  animation-delay: -0.5s;
}

@keyframes ripple-loader {
  0% {
    top: 32px;
    left: 32px;
    width: 0;
    height: 0;
    opacity: 1;
  }
  100% {
    top: 0;
    left: 0;
    width: 64px;
    height: 64px;
    opacity: 0;
  }
}

Please click on 'Go Live' in the bottom right corner to run the web service on port 8080. Then, you can refresh the Web 8080 Tab to preview the web page.

Summary

Congratulations! You have completed the Pulse Loader lab. You can practice more labs in LabEx to improve your skills.

Other CSS Tutorials you may like