我有一个几乎可以工作的功能。
它找到一个 .hex 类的元素,然后运行一个介于 5 到 13 之间的随机数,然后将这些 .hex 项附加到文档的正文中。
然后我有一个延迟,六边形慢慢地淡入淡出。
我想做的是在循环中创建它,以便它们不断淡入淡出。
我已经注释掉了我理解的应该起作用的代码,但目前没有。
我所做的只是将我的所有代码包装在一个名为 initHex() 的新函数中,然后在代码之后我使用 setInterval 每 12 秒运行一次函数(目前)。
我可以在控制台中看到该函数运行,然后开始非常快速地循环,数字急剧增加,并且很快它停止浏览器响应。
我想知道该函数是否包含过多的代码。
这个想法是希望当前函数在新函数淡入时仍在运行(六边形淡出)。
我假设在函数结束时我还需要一些东西来删除现有的十六进制元素,这样它们就不会继续添加到文档中。我确实试过这个。
这是功能:
//function initHex() {
$rndNum = Math.floor(Math.random() * 8) + 5;
var e = $('.hex');
for (var i = 0; i < $rndNum ; i++) {
$docHeight = $(window).height();
$docHeight = Math.random() * $docHeight * 2;
$docWidth = $(window).width();
$docWidth = Math.random() * $docWidth;
$rndOpacity = Math.random();
$rndSpeed = Math.floor(Math.random() * 2000) + 2000;
e.each(function(){
$(this).css({
position: 'absolute',
top: $docHeight,
left: $docWidth - 195,
opacity: $rndOpacity
});
e.clone().prependTo('body').delay(e.length*800).fadeIn($rndSpeed).delay(1000).fadeOut($rndSpeed*2);
console.log($rndNum, $rndOpacity, $rndSpeed);
});
}
//}
//setInterval(initHex, 12000);
在六边形运行后移除六边形方面,我尝试过:
e.clone().prependTo('body').delay(e.length*800).fadeIn($rndSpeed).delay(1000).fadeOut($rndSpeed*2.5, function(){
e.remove();
});
这是小提琴: http: //jsfiddle.net/lharby/j5bSz/ 把它叉到你的心里。
TIA