Вот, пожалуйста.на стороне HTML вы просто передаете событие нужной кнопке, а затем в виде строки span / div, где должны отображаться значки загрузки.
HTML:
<button id="btn" onclick="load(event, 'loadDiv')">Load</button>
<div>
<span id="loadDiv"></span>
</div>
Ниже мы получаем btn id из события, поэтому вам не нужно вручную передавать его каждый раз.Затем мы определяем функцию для иконок innerhtml.Наконец, мы запускаем функцию showIcon каждые 4 секунды, а затем очищаем интервал через 5 секунд.
JS:
function load(e, location) {
var btn = document.getElementById(e.srcElement.id)
var loadDiv = document.getElementById(location)
function showLoad() {
if (loadDiv.innerHTML.length < 3) {
return loadDiv.innerHTML += '●'
}
loadDiv.innerHTML = ''
}
(function() {
var loadIcons = setInterval(function() {
showLoad()
}, 400)
var clear = setTimeout(function() {
clearInterval(loadIcons)
}, 5000)
})()
}
Надеюсь, это поможет!