ProgressBlock — это настраиваемый компонент на JavaScript для отображения и управления круговым индикатором прогресса (progress ring) с возможностью:
- Ввода значения (0 до 100)
- Включения/отключения анимации вращения
- Скрытия/отображения компонента
Компонент спроектирован таким образом, что его можно использовать в других приложениях, а также он может адаптироваться под ориентацию устройства.
import ProgressBlock from './ProgressBlock.js';
const container = document.getElementById('root');
const progress = new ProgressBlock(container);Компонент создает в DOM следующую структуру:
-
block-wrapper — контейнер всего блока
-
block-name — заголовок "Progress"
-
progress-circle — обертка с SVG-кольцом
-
progress-ring — SVG, включающее два кольца:
.progress-ring-bg— фон.progress-ring-value— текущее значение
-
-
control-block — панель управления:
- Ввод Value
- Checkbox Animate
- Checkbox Hide
-
Создает компонент и вставляет его внутрь DOM-элемента.
Устанавливает новое значение прогресса (0–100).
progress.setValue(75);Включает/отключает анимацию вращения. Можно задать период в миллисекундах.
progress.setAnimate(true, 3000);Скрывает/показывает блок с плавным переходом.
progress.setHide(true);
progress.setHide(false);<div id="root"></div>
<script type="module">
import ProgressBlock from './ProgressBlock.js';
const container = document.getElementById('root');
const progress = new ProgressBlock(container);
progress.setValue(40);
progress.setAnimate(true, 5000);
</script>ProgressBlock.js— основной классprogressBlock.scssилиprogressBlock.css— стили для компонента