bootstrap, pasek ładowania w JS
Dziś pokażę wam jak zbudować prosty dynamicznie ładujący się pasek postępu czyli z angielskiego dynamic progress bar.
W celu przyspieszenia mojej pracy do stworzenia animacji wykorzystam jeden z pasków ładowania z biblioteki Bootstrap 3+. Wy jednak możecie użyć innego paska. Pamiętajcie jednak by odpowiednio zmodyfikować kod jQuery tak by nazwy klas i id odpowiadały temu na czym wy konkretnie pracujecie.
Pasek na jakim dziś będę pracować możecie zobaczyć po niżej + jego struktura w języku HTML:
<div class="progress">
<div class="progress-bar progress-bar-success progress-bar-striped active" role="progressbar"
style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
</div> Jak widać w tej chwili pasek jest w częściowo załadowany (dzięki czemu możemy zobaczyć jakie elementy wchodzą w jego skład). By dalej na nim pracować muszę go teraz „opróżnić” czyli ustawić poziom załadowania na 0. W tym celu zmienię width:100% na width:0%. Spowoduje to, że mój pasek będzie pusty.
Sam efekt ładowania jest bardzo prosty do uzyskania w jquery. Choć przyznam, że na początku miałam z nim pewne problemy.
$(function() {
var current_progress = 0;
var interval = setInterval(function() {
current_progress += 10;
$("#dynamic")
.css("width", current_progress + "%")
.attr("aria-valuenow", current_progress)
.text(current_progress + "% Complete");
}, 1000);
}); Jak widać na początku dodałam zmienną current_progress i ustawiam ją na „0”. Następnym kroku zbudowałam funkcję matematyczną, która powoli będzie zwiększać szerokość paska.
Cała operacja zapełnienia się paska ma trwać 1000 (mikrosekund) o czym informuje nas liczna za liczącą funkcja. W tym czasie current_progress zostanie kilkakrotnie zwiększony o „10”.
current_progress += 10; Następnie zmiana ta zostanie naniesiona na obiekt dysponujący id=”dynamic”. Zmiany to:
Zwiększenie szerokości o wartość current_progress + „%” – taka kombinacja zmienia np. 10 w 10%, 30 w 30%. Takie małe oszustwo 🙂
.css("width", current_progress + "%") Z pomocą tej funkcji zmodyfikowana zostanie wartość aria-valuenow
.attr("aria-valuenow", current_progress) Ostatni element doda mi z kolei tekst. A konkretnie informację w którym obecnie momencie znajduje się mój pasek.
.text(current_progress + "% Complete"); Kolor paska może ulegać zmianie w zależności do miejsca w którym aktualnie się znajduje np:
$(function() {
var current_progress = 0;
var interval = setInterval(function() {
current_progress += 10;
$("#dynamic")
.css("width", current_progress + "%")
.attr("aria-valuenow", current_progress)
.text(current_progress + "% Complete");
if (current_progress == 20){
$("#dynamic").css('background-color', 'orange');
}
if (current_progress == 50){
$("#dynamic").css('background-color', 'pink');
}
if (current_progress == 70){
$("#dynamic").css('background-color', 'red');
}
if (current_progress >= 100){
$("#dynamic").css('background-color', 'blue');
clearInterval(interval); }
}, 1000);
}); Gotowy Pasek (progress bar) w działaniu:
Jak w przypadku wielu różnych tematów tak i w przypadku marki osobistej pojawiło się przez…
Choć zabrzmi to może nieco dziwnie to wprowadzenie AI (sztucznej inteligencji) do naszego życia było…
Widmo Brockenu to dość rzadko spotykane zjawisko optyczne, najczęściej widywane w wysokich partiach gór. Można…
Zacznę może od tego, że relikwia, relikwii nie równa. Wiem jeśli nie ma się pojęcia…
Logo stanowi jeden z ważniejszych elementów tożsamości wizualnej praktycznie każdej firmy, marki czy projektu. Logo…
Budując własną markę osobistą lub chcąc ją zbudować trzeba liczyć się z wieloma wyzwaniami. Jednym…