вопрос
Добрый.
Такой вопрос.
Нужен лоадер который будет появляться при нажатии на кнопку.
Сделал подобный:
HTML
CSS
javascript
Пример работы
Не работает на несколько кнопок.. а нужно чтобы работало
Работать то работает.
Но проблема заключается в том - что он работает для одной кнопки.
Бывает что на странице по 5 кнопок.
Как его правильно сделать - чтобы работала для всех нужных кнопок на странице, а не только для одной ?
Такой вопрос.
Нужен лоадер который будет появляться при нажатии на кнопку.
Сделал подобный:
HTML
<button type="submit" class="loaderbutton" id="submit">Click Me!</button>
CSS
.loaderbutton {
padding: 10px 30px;
background: #3e52c1;
border: none;
color: #fff;
border-radius: 5px;
cursor: pointer;
font-size: 1.2em;
position: relative;
display: block;
}
.loaderbutton::after {
content: '';
display: block;
width: 1.1em;
height: 1.1em;
position: absolute;
left: calc(50% - 0.75em);
top: calc(50% - 0.75em);
border: 0.2em solid transparent;
border-right-color: white;
border-radius: 50%;
animation: loader-animation 0.7s linear infinite;
opacity: 0;
}
@keyframes loader-animation {
from {
transform: rotate(0);
}
to {
transform: rotate(360deg);
}
}
.loaderbutton.loading {
color: transparent;
}
.loaderbutton.loading::after {
opacity: 1;
}
javascript
const animBtn = document.getElementById("submit");
animBtn.addEventListener('click', () => {
animBtn.classList.add("loading");
//The following is used for demo purposes only//
setTimeout(() => animBtn.classList.remove("loading"), 5000);
});
Пример работы
Не работает на несколько кнопок.. а нужно чтобы работало
Работать то работает.
Но проблема заключается в том - что он работает для одной кнопки.
Бывает что на странице по 5 кнопок.
Как его правильно сделать - чтобы работала для всех нужных кнопок на странице, а не только для одной ?
var buttons = document.querySelectorAll('.loaderbutton');
buttons.forEach(function(btn) {
btn.addEventListener('click', function() {
btn.classList.add('loading');
btn.innerText = 'Loading... Please wait!';
btn.disabled = true;
setTimeout(function() {
btn.innerText = 'Download'; // Возвращаем текст
btn.classList.remove('loading'); // Убираем класс загрузки
btn.disabled = false; // Разблокируем кнопку
}, 3000); // Задержка 3 секунды
});
});
buttons.forEach(function(btn) {
btn.addEventListener('click', function() {
btn.classList.add('loading');
btn.innerText = 'Loading... Please wait!';
btn.disabled = true;
setTimeout(function() {
btn.innerText = 'Download'; // Возвращаем текст
btn.classList.remove('loading'); // Убираем класс загрузки
btn.disabled = false; // Разблокируем кнопку
}, 3000); // Задержка 3 секунды
});
});
