Pracujemy na znalezionym w internecie kodzie. Zamieniamy animację paska ładowania na dynamiczny pasek ładowania. Odkrywamy, że funkcja 'attr’ nie jest w stanie zawsze nas poratować, ale są inne rozwiązania, takie jak wstrzykiwanie zmiennych CSS na przykład.
Post ten napisałem w oparciu o ciekawą animację paska ładowania znalezioną w internecie, którą również polecam. Oto HTML:
<div class="progress">
<div class="color"></div>
</div>
Oraz CSS:
.progress{
position: relative;
height: 10px;
width: 1110%;
border: 10px solid #f4a261;
border-radius: 15px;
}
.progress .color{
position: absolute;
background-color: #ffffff;
width: 0px;
height: 10px;
border-radius: 15px;
animation: progres 4s infinite linear;
}
@keyframes progres{
0%{
width: 0%;
}
25%{
width: 50%;
}
50%{
width: 75%;
}
75%{
width: 85%;
}
100%{
width: 100%;
}
};
Wbrew pozorom nie jest to szczególnie trudne. My jednak chcemy coś bardziej dynamicznego. Myślałem na początku o użyciu data-setu, który w data-percent miałby wartość procentową dla width, którą wyciągniemy przez attr i przypiszemy do width, ale niestety to nie chciało działać.
Znalazłem inne obejście – wstrzykiwanie zmiennych CSS poprzez atrybut style:
<div class="progress">
<div class="color" style="--percent: 10%;"></div>
</div>
Teraz pora tego użyć:
.progress{
position: relative;
height: 10px;
width: 500px;
border: 10px solid #f4a261;
border-radius: 15px;
}
.progress .color{
position: absolute;
background-color: #e60d0d;
width: var(--percent);
height: 10px;
border-radius: 15px;
}
Nasz progress bar załadowany na 10%. Teraz podmieńmy sobie wstrzykiwaną zmienną:
<div class="color" style="--percent: 100%;"></div>
Teraz na 100%. Te sztuczkę z wstrzykiwaniem zmiennych CSS warto sobie odnotować.