Если вам на сайте нужно сделать индикатор завершенности задачи, например, конец загрузки файлов на сервер, то в HTML5 для этого существует специальный тег <progress>. С помощью тега <progress> вы сможете сделать полоску загрузки. Хотя, через JavaScript придется настраивать изменение ее значений.
Сейчас вы все увидите и поймете.
Атрибуты тега <progress>:
- Value – текущее значение прогресса.
- Max – максимальное значение прогресса.
Пример:
Пожалуйста, подождите, резюме загружаются. <progress max="100" value="35"></progress> Загружено на <span id="value">35</span>%
Результат:
Пожалуйста, подождите, резюме загружаются.
Загружено на 35%Поменяйте в атрибуте «value» значение до 100. Сейчас там 35, замените на 75 или 100.
Теперь поняли, как это работает? Естественно, значение меняется через JavaScript, а не вручную.
Оформление в CSS
Для оформления индикатора загрузки используйте вот такие псевдоклассы:
progress { /* стили */ } progress::-webkit-progress-bar { /* Chrome и Opera */ /* стили для полоски загрузки */ } progress::-webkit-progress-value { /* Chrome и Opera */ /* стили для ползунка */ } progress::-moz-progress-bar { /* стили для Firefox */ /* стили для полоски загрузки */ }
Пример:
progress { border:0; width: 300px; height: 20px; border-radius: 10px; background: #f1f1f1; } progress::-webkit-progress-bar { width: 300px; height: 20px; border-radius: 10px; background: #f1f1f1; } progress::-webkit-progress-value { border-radius: 10px; background: #ffb76b; } progress::-moz-progress-bar { border-radius: 5px; background: #ffb76b; }
Результат:
Теперь оживим ползунок с помощью JavaScript:
<progress id="progress" value="0" max="100"></progress> <script> function getProgress(){ if(document.getElementById('progress').value>=document.getElementById('progress').max) return false; document.getElementById('progress').value++; setTimeout(getProgress,50); } getProgress(); </script>
Результат:
А можно вывести значение загрузки еще и цифрами:
<script ENGINE="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script> $(document).ready(function() { var progressbar = $('#progressbar'), max = progressbar.attr('max'), time = (1000/max)*5, value = progressbar.val(); var loading = function() { value += 1; addValue = progressbar.val(value); $('.progress-value').html(value + '%'); if (value == max) { clearInterval(animate); } }; var animate = setInterval(function() { loading(); }, time); }); </script> <div class="progress-bar-wrapper"> <progress id="progressbar" value="0" max="100"></progress> <span class="progress-value">0%</span> </div>
Результат:
А можно и вот так на чистом JS:
<div style="width: 300px; height: 20px; position: relative; background: #ccc; "> <progress id="line" style="widht: 0%; height: 100%; position: absolute; background: #ccc;" ></progress> <div id="number" style="width: 100%; height: 100%; position: absolute; text-align: center; ">0%</div> </div> <script> (function(){ var number = document.querySelector("#number"); var line = document.querySelector("#line"); var current = parseInt(number.innerHTML); if(current < 100){ setTimeout(arguments.callee,30); line.style.width = (current + 1) + '%'; number.innerHTML = (current + 1) + '%'; } })(); </script>
Результат:
Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓
Последние новости категории:
Похожие статьи
Популярные статьи:
-
Как узнать id компьютера
Дата: 29 марта 2013
Прокомментировано:90
просмотров: 330341 -
Размеры форматов листов А0 – А7
Дата: 23 января 2013
Прокомментировано:3
просмотров: 274700 -
Смешные логические загадки с подвохом, отгадки прилагаются
Дата: 12 ноября 2014
Прокомментировано:5
просмотров: 222519 -
Готовые макеты блоков для веб-страниц на HTML и CSS
Дата: 25 июня 2014
Прокомментировано:23
просмотров: 187694 -
Установка windows 7 на ноутбук
Дата: 18 декабря 2012
Прокомментировано:169
просмотров: 186564
Добавить комментарий
Метки: html
Спасибо, Александр за комментарий. Планирую еще пару постов для WooCommerce…
⇒ Открыть статью ⇐