[JavaScript] Odliczanie

W tym wpisie stworzymy prosty licznik odliczaj膮cy od podanej warto艣ci.

Kod HTML

Zacznijmy od utworzenia kontenera dla licznika:

<div class="counter-container">
        <div id="counter" class="counter">100</div>
    </div>

Kod CSS

Utw贸rzmy jakie艣 efekty animowane dla licznika:

.counter {

    font-size: 100px;
    transition: transform 0.3s ease, color 0.3s ease;
            
}

.fade {
        
    opacity: 0;
    transition: opacity 0.3s ease;
            
}
        
.bounce {
        
    animation: bounce 0.3s ease;
            
}

@keyframes bounce {
        
    0% { transform: scale(1); }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); }
            
}

Kod JavaScript

document.addEventListener('DOMContentLoaded', () => {

    const startNumber = 100; // Odliczamy od
    const countdownSpeed = 500; // Pr臋dko艣膰 odliczania (w milisekundach)
    const counterElement = document.getElementById('counter');
    let currentNumber = startNumber;

    function updateCounter() {
    
        // Aktualn膮 warto艣膰 zmniejszamy o 1
        currentNumber = Math.max(0, currentNumber - 1);

        // Efekt zanikania i odbicia dla aktualnej liczby
        counterElement.classList.add('fade');

        setTimeout(() => {
        
            counterElement.textContent = currentNumber;

            // Dodaj efekt odbicia
            counterElement.classList.add('bounce');

            // Zmiana koloru (np. na czerwony) podczas zmiany liczby
            if(currentNumber > 0) {
            
                counterElement.style.color = '#ff4757';
                
            }
            
            else {
            
                counterElement.style.color = '#ffffff'; // Przywracamy kolor docelowy
                
                
            }

            // Resetowanie efekt贸w
            setTimeout(() => {
            
                counterElement.classList.remove('fade');
                counterElement.classList.remove('bounce');
                counterElement.style.color = '#ffffff';
                
            }, 300); // Czas trwania efektu zanikania
            
        }, 300); // Czas po kt贸rym liczba si臋 zmienia

        if(currentNumber > 0) {
        
            setTimeout(updateCounter, countdownSpeed); // U偶ycie pr臋dko艣ci odliczania
            
        }
        
    }

    updateCounter(); // Rozpocz臋cie odliczania
    
});

Demo

100

Komentarze

Popular

[C++] Jak obliczy膰 pole i obw贸d trapezu?

[HTML] Jak wy艣rodkowa膰 tekst?

[PHP|HTML] Od艣wie偶enie strony