Автор оригинала: Florin Pop.
Первоначально опубликовано www.florin-pop.com
Тема На неделю # 14 из Недельный кодирующий вызов является:
Индикатор
Индикатор выполнения используется, чтобы показать, насколько далеко пользовательское действие все еще находится в процессе, пока он не будет завершен. Хорошим примером является панель загрузки, которая показывает, сколько файла уже загружено уже (или он также может быть загрузкой, если вы загрузите файлы?).
В этой статье мы собираемся построить этот вид Прогресс бар :
HTML
Для HTML-структуры нам нужны две вещи:
- А Контейнер которые будут отображать общую длину (100%) бара выполнения –
.индикатор - фактический элемент прогресса, который в основном отслеживает текущий прогресс (например, 20%) –
.прогресс
Как вы можете увидеть .прогресс Div имеет Размер данных атрибут. Это будет использоваться в JavaScript на самом деле установить ширина прогресса. Вы увидите в любой момент, что я имею в виду, но сначала давайте стиль этих двух элементов. ?
CSS.
.progress-bar {
background-color: #fefefe;
border-radius: 3px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
margin: 15px;
height: 30px;
width: 500px;
max-width: 100%;
}
.progress {
background: #ad5389;
background: -webkit-linear-gradient(to bottom, #3c1053, #ad5389);
background: linear-gradient(to bottom, #3c1053, #ad5389);
border-radius: 3px;
height: 30px;
width: 0;
transition: width 0.5s ease-in;
}
Несколько вещей, которые следует отметить, что касается вышеуказанных CSS:
- Оба элемента являются прямоугольниками, которые имеют одинаковую высоту (
30px) и То же самоепограничный радиус - Первоначально
.прогрессширина она установлена на0И мы обновим это в JavaScript код ниже - Также
.прогрессимеет хорошееЛинейный градиентот Uigentients. -
Переходдобавлено в.Прогресьиспользуется для создания хорошей анимации, когда стоимость этогоРазмер данныхатрибут динамически изменяется
JavaScript
Для этого нам нужно будет петить все .Прогресь Элементы (в нашем примере только один, но вы можете добавить несколько в приложении), чтобы получить их Набор данных значение и установить его как их ширину. Мы будем использовать процент ( % ) в этом случае.
const progress_bars = document.querySelectorAll('.progress');
progress_bars.forEach(bar => {
const { size } = bar.dataset;
bar.style.width = `${size}%`;
});
Мы используем немного Разрушение объекта Отказ
const {size.dataset.
такой же как:
const.dataset.size.
Но вы уже можете это знать?
Заключение
Есть несколько вещей, которые вы могли бы сделать, чтобы улучшить этот компонент. Некоторые из которых:
- Добавьте несколько вариантов цвета через разные классы
- Добавьте процентное значение
- Сделайте его анимацию динамически, изменив значение размера.
Я надеюсь, что вам понравилось, и убедитесь, что вы поделитесь со мной, что вы создаете!
Счастливое кодирование! ?
Оригинал: “https://www.freecodecamp.org/news/how-to-create-a-custom-progress-bar/”