我有这个for循环,我正在创建一堆图像用作" emoji-rain"
var icons = ['balloon',
'clapping-hands-light-skin-tone',
'clapping-hands-medium-skin-tone',
'crazy-face',
'face-blowing-a-kiss',
'grinning-face-with-smiling-eyes',
'heart-suit',
'money-bag',
'man-dancing',
'money-mouth-face',
'money-with-wings',
'party-popper',
'victory-hand-light-skin-tone',
'victory-hand-medium-dark-skin-tone',
'woman-dancing'];
for(i = 0; i < icons.length; i++) {
left = (Math.random() * (document.querySelector('#site').offsetWidth) - 75);
top = parseInt(Math.random() * (i * 125));
img = document.createElement("img");
img.src = 'src/public/icons/rain/'+ icons[i] +'.svg';
img.style.left = left +'px';
img.style.top = top +'px';
img.style.position = 'absolute';
rainElement.appendChild(img);
}
我想要的是添加课程&#34; fall&#34;使用setTimeout
,以便图标在不同时间开始下降。
我有这个
(function(i) {
setTimeout(function() {
img.addClass('fall');
}, i*750);
})(i);
}
但这会增加&#34;跌倒&#34;只到最后一个元素。我无法弄清楚如何在所有图片上做到这一点。
答案 0 :(得分:1)
我不会将import org.apache.commons.io.FileUtils;
boolean filesEqual = FileUtils.contentEquals(new File('/path/to/file1'), new File('/path/to/file2'))
if (!filesEqual) {
AssertionResult.setFailure(true)
AssertionResult.setFailureMessage('Files are not equal');
}
放在循环中,而是创建一个外部函数,例如:
setTimeout
并在循环中:
function fall(i) {
return function(){
setTimeout(function(){
img.addClass('fall');
}, i * 750);
}
}
匿名异步函数(在本例中为setTimeout)将fall(i)();
的值绑定到函数外部的同一变量,然后您将该类仅添加到循环的最后一个元素。你想要的是将它绑定到一个不会在循环中改变的值,这是一种方法。