Html Css Ve Js Ile Animasyonlu Download Butonu Örneği

fikretyn 

Moderatör
moderatör rank
Katılım
12 Mar 2024
Konular
48
Mesajlar
64
Tepkime puanı
24
Çevrimiçi zaman
18 saat 33 dakika
Konum
samsun
Ticaret
0 / 0 / 0
down.jpg

Bu linkten referans videoya gidebilirsiniz. Ama yok direk kodları almak isterseniz onlarda aşagıda sizi bekliyor.

HTML:
<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="style.css"> 
    <title>Document</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
</head>
<body>
    <div class="container" id="container">
        <i class="fa-solid fa-down-long download"></i>
        <h2 id="number">  </h2>
    </div>
    <script>
        let download = document.querySelector('.download');
        let container = document.getElementById('container');
        let number = document.getElementById('number');
        download.addEventListener('click', function(event){
            download.classList.add('start');
            let degree = 0;
            let interval = setInterval(function(){
                degree += 1;
                if (degree > 100) {
                    clearInterval(interval);
                    number.innerHTML = '<i class="fa-solid fa-check"></i><br><small>100% Done</small>';
                    container.classList.add('done')
                    return;
                }
                container.style.background = `conic-gradient(#f5036c ${degree}%, #333 0%)`;
                number.innerHTML = degree + '<span>%</span>'
            },100)
        })
    </script>
</body>
</html>

CSS
CSS:
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: console;
}

body{
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    background: #222;
}
.container{
    position: relative;
    width: 200px;
    height: 200px;
    background: conic-gradient(#333 0%, #333 100%);
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    user-select: none;
    overflow: hidden;
}
.container.done{
    background: #0f0 !important;
}
.container::before{
    content: '';
    position: absolute;
    inset: 15px;
    border-radius: 50%;
    background: #222;
    opacity: 0.9;
}
.container #number{
    position: relative;
    color: #fff;
    z-index: 100;
    font-size: 3em;
    text-align: center;

}
.container.done #number{
    font-size: 5em;
    line-height: 1em;
}
.container #number span{
    font-size: 0.5em;
}
.container.done #number small{
    position: absolute;
    top: 10px;
    font-size: 0.2em;
    text-transform: uppercase;
    white-space: nowrap;
    font-weight: 500;
    letter-spacing: 0.05em;
    transform: translate(-50%,50%);
}
.download{
    position: absolute;
    top: 50%;
    transform: translateY(-5);
    color: #03a9f5;
    font-size: 4em;
    transition: 0.5s;
}
.download.start{
    transform: translateY(160%); 
}

Not: Ben tembelim uğraşamam o yüzden indirip bakmak istiyorum diyenler içinde indirme linkini bırakıyorum..
 

Ekli dosyalar

  • down.jpg
    down.jpg
    24.2 KB · Görüntüleme: 1
  • download-CSS.rar
    1.5 KB · Görüntüleme: 1
Son düzenleme:
Konu Sahibi
fikretyn

fikretyn 

Moderatör
moderatör rank
Katılım
12 Mar 2024
Konular
48
Mesajlar
64
Tepkime puanı
24
Çevrimiçi zaman
18 saat 33 dakika
Konum
samsun
Ticaret
0 / 0 / 0
Çok teşekkür ederim.
 
Katılım
11 Mar 2024
Konular
0
Mesajlar
10
Tepkime puanı
2
Çevrimiçi zaman
4 saat 39 dakika
Yaş
35
Konum
Bursa
Ticaret
0 / 0 / 0
Emekleriniz taktire şayan hocam teşekkürler bu güzel paylaşım için.
 
Konu Sahibi
fikretyn

fikretyn 

Moderatör
moderatör rank
Katılım
12 Mar 2024
Konular
48
Mesajlar
64
Tepkime puanı
24
Çevrimiçi zaman
18 saat 33 dakika
Konum
samsun
Ticaret
0 / 0 / 0
Teşekkür ederim
 

Users who are viewing this thread

Ana Sayfa Kayıt Ol Giriş Yap
Üst