尝试使用从数组中随机选择的元素创建一个元素,直到数组为空为止。我困惑的是,当我不将元素附加到dom时,我的函数可以工作,但是一旦添加到dom中,数组就会变大并最终崩溃dom。
我的计划是最终创建一个新对象,该对象具有图像、css和随机xy位置,然后使用对象值将新元素附加到dom中。
基本上,我正在尝试每秒向dom添加随机图像,并使它们动画进出,直到数组为空。
非常感谢您的帮助,谢谢。
如果我将新图像添加到dom中,它最终会崩溃,循环将永远继续,这对我来说毫无意义。
我的计划是最终创建一个新对象,该对象具有图像、css和随机xy位置,然后使用对象值将新元素附加到dom中。
基本上,我正在尝试每秒向dom添加随机图像,并使它们动画进出,直到数组为空。
非常感谢您的帮助,谢谢。
"load": function(){
var imgArray = ['brain', 'mitochondria', 'microscope', 'beaker', 'beaker-2', 'scientist', 'cell', 'atom', 'dropper'];
window.setInterval(function(){
var imgItem;
if( imgArray.length >= 1 ) {
var index = Math.floor( Math.random()*imgArray.length );
console.log( imgArray[index] ); // Log the item
imgItem = ( imgArray[index] ); // Log the item
imgArray.splice( index, 1 ); // Remove the item from the array
// $('form').append('<img class="img-animation" src="img/science/'+ imgItem +'.svg" alt="'+ imgItem +'">');
}
}, 1000);
},
这是没有添加新图像时的控制台:
home.js:11 beaker
home.js:11 dropper
home.js:11 microscope
home.js:11 beaker-2
home.js:11 atom
home.js:11 brain
home.js:11 scientist
home.js:11 cell
home.js:11 mitochondria
如果我将新图像添加到dom中,它最终会崩溃,循环将永远继续,这对我来说毫无意义。
if
中使用另一个变量,例如:if (imgArray.length && iterationLimit)
(例如初始化iterationLimit = 10
),这将只允许10次迭代;在两种情况下,0
都是假值,因此一旦任何一个数字达到0
,if
条件将为false
,从而停止执行。 - David Thomas