Я пытаюсь предварительно загрузить изображения, и как только они будут полностью загружены, они будут постепенно исчезать (используя JQuery). При загрузке отображается небольшая анимация загрузки. Для этого я попытался создать невидимый тег изображения и позволить им загружаться там. Как только они закончили загрузку, я попытался установить исходный оригинал img-тега на оригинал.JQuery ready бесконечный цикл
Однако я не нашел свою ошибку в течение нескольких часов и не имею понятия. Кажется, что он заканчивается бесконечным циклом, а затем снова и снова создает «preload-img-tags».
мой HTML:
<img src="someimg.jpg" id="img2load" class="preload_img" style="max-width:400px; max-height:400px;">
мои JS:
$(document).ready(function() {
var objs = document.getElementsByClassName("preload_img");
for (var i = 0; i < objs.length; i++) {
objs[i].setAttribute("restoreImgPath", objs[i].src);
//create div for preloading
var img = document.createElement("img");
img.setAttribute("src", objs[i].src);
img.setAttribute("style", "position:absolute; top:0px; left:0px; display:none;");
img.setAttribute("preloadForId", objs[i].id);
img.setAttribute("id", "preload_" + objs[i].id);
document.body.appendChild(img);
//display loading gif
objs[i].setAttribute("src", "loading.gif");
//restore image [... not yet implemented ...]
}
});
Спасибо заранее. Я не очень опытный в JS еще не так, пожалуйста, будьте терпеливы со мной 0 :-)
Зачем включать jQuery, если вы не собираетесь его использовать? – sbeliv01
document.ready(), и он мне понадобится позже. – newBee
Вы уверены, что этот фрагмент кода вызывает проблему? одно место это может произойти, если вы присоединяете одно и то же имя класса к элементу, добавляемому в цикле (который вы здесь не делаете), потому что 'objs' - это живая коллекция, и она обновляется по мере добавления элементов с тем же классом еще раз. Однако для более безопасной стороны do 'var i = 0, l = objs.length; i
PSL