Vahan60,
если картинок немного, загрузите их все в строке ноль. читать preloading images with JavaScript |
Использовать Promise надо
Определяем функцию, возвращающую Promise, разрешающийся, когда картинка загрузится (ну или ошибка, т.к. мы их все равно не обрабатываем) const loadimg = (img, src) => { return new Promise (res => { img.onload = img.onerror = () => res() img.src = src }) } Затем ждем, когда все картинки загрузятся и потом показываем диалог Вместо строк 4-8 Promise.allSetted([...img].map((im, j) => loadimg(im, `cartoons/${inset[activeUnit][j]}.png`))) .then(() => dial.show()) |
Получилось.
for (let i = 0; i < alphabet.length; i++){ unit[i].addEventListener("click", function( ) { activeUnit = i; for (let j = 0; j < img.length; j++) { img[j].src = "cartoons/".concat(inset[activeUnit][j].concat(".png")) }; }) }; for (let i = 0; i < alphabet.length; i++){ unit[i].addEventListener("click", function( ) { dial.show() }) }; Всем огромное спасибо!:thanks: |
Как меня достали эти алерты:
"Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его рони." "Вы должны добавить отзыв кому-то ещё, прежде чем сможете снова добавить его voraa." :-/ Невозможно поблагодарить Консультантов по форумному. Благодарю по человечески - еще раз огромное спасибо. |
Цитата:
Не думаю, что это что то дает. |
Кэш очистил. Работает нормально. С 3ж не знаю как быть. В случае чего к строкам 10-12 можно прикрутить setTameOut.
|
Часовой пояс GMT +3, время: 16:35. |