Animated Counter

Intermediate

Smooth animated counter component with customizable easing, multiple number formats, and intersection observer for performance. Perfect for statistics and achievements sections.

Live Preview

Code Implementation

HTML
<div class="counter-container">
  <div class="counter-grid">
    <!-- Counter 1: Basic Number -->
    <div class="counter-card">
      <div class="counter-icon">πŸ‘₯</div>
      <div class="counter-number" data-target="1250" data-duration="2000">0</div>
      <div class="counter-label">Happy Customers</div>
      <div class="counter-suffix">+</div>
    </div>
    
    <!-- Counter 2: Percentage -->
    <div class="counter-card">
      <div class="counter-icon">πŸ“ˆ</div>
      <div class="counter-number" data-target="98.5" data-duration="2500" data-decimals="1">0</div>
      <div class="counter-label">Success Rate</div>
      <div class="counter-suffix">%</div>
    </div>
    
    <!-- Counter 3: Large Number with K -->
    <div class="counter-card">
      <div class="counter-icon">πŸ’Ό</div>
      <div class="counter-number" data-target="15000" data-duration="3000" data-format="compact">0</div>
      <div class="counter-label">Projects Completed</div>
      <div class="counter-suffix"></div>
    </div>
    
    <!-- Counter 4: Years of Experience -->
    <div class="counter-card">
      <div class="counter-icon">πŸ†</div>
      <div class="counter-number" data-target="12" data-duration="1500">0</div>
      <div class="counter-label">Years Experience</div>
      <div class="counter-suffix"></div>
    </div>
    
    <!-- Counter 5: Revenue with Currency -->
    <div class="counter-card">
      <div class="counter-icon">πŸ’°</div>
      <div class="counter-prefix">$</div>
      <div class="counter-number" data-target="2500000" data-duration="3500" data-format="currency">0</div>
      <div class="counter-label">Revenue Generated</div>
      <div class="counter-suffix"></div>
    </div>
    
    <!-- Counter 6: Downloads -->
    <div class="counter-card">
      <div class="counter-icon">⬇️</div>
      <div class="counter-number" data-target="500000" data-duration="2800" data-format="compact">0</div>
      <div class="counter-label">Total Downloads</div>
      <div class="counter-suffix">+</div>
    </div>
  </div>
  
  <!-- Control Buttons -->
  <div class="counter-controls">
    <button class="control-btn" id="startBtn">Start Animation</button>
    <button class="control-btn" id="resetBtn">Reset Counters</button>
  </div>
</div>

Snippet Features

Responsive Design: Yes
Dark Mode Support: Yes
Category: loading-animations
Difficulty Level: Intermediate