Для долгих операций используют индикаторы прогресса Progress Bar и Spinner.
Для индикаторов прогресса используются два класса
Простейший вариант. Значение задаётся в скрипте.
<div id="p1" class="mdl-progress mdl-js-progress"></div>
<script>
document.querySelector('#p1').addEventListener('mdl-componentupgraded', function() {
this.MaterialProgress.setProgress(33);
});
</script>
Ширину можно указать в стилях.
<div id="prog2" style="width:250px" class="mdl-progress mdl-js-progress"></div>
<script>
document.querySelector('#prog2').addEventListener('mdl-componentupgraded', function() {
this.MaterialProgress.setProgress(80);
});
</script>
Для индикатора с анимацией достаточно указать второй класс.
<!-- MDL Progress Bar with Indeterminate Progress -->
<div id="p2" class="mdl-progress mdl-js-progress mdl-progress__indeterminate"></div>
Также можно создать эффект буфферизации.
<div id="p3" class="mdl-progress mdl-js-progress"></div>
<script>
document.querySelector('#p3').addEventListener('mdl-componentupgraded', function() {
this.MaterialProgress.setProgress(33);
this.MaterialProgress.setBuffer(87);
});
</script>
Spinner представляет собой вращающий кружок, выполняющий функцию курсора с песочными часами.
Содержит четыре класса: два обязательных и два необязательных.
Можно использовать не только в div, но и в p, span.
<!-- MDL Spinner Component -->
<div class="mdl-spinner mdl-js-spinner is-active"></div>
<!-- MDL Spinner Component with Single Color -->
<div class="mdl-spinner mdl-spinner--single-color mdl-js-spinner is-active"></div>
Если компонент нужно сделать невидимым, то через сценарий нужно программно убрать класс is-active.
Посмотреть примеры с индикаторами