我目前正在创建一个应用程序,用户可以在其中将项目拖到邮箱中。
在他们放下物品后,邮箱“后面”会创建一个新图像,让您感觉它实际上正在掉入其中。
每次有人掉落物品时,我都会使用以下代码创建新图像并为其设置动画:
function animateDrop(){
animateArray.push($('.animateDrop').clone())
xArray.push(xPos)
yArray.push(yPos)
var foo = animateArray[animateArray.length - 1];
var finalxPos = xArray[xArray.length - 1];
var finalyPos = yArray[yArray.length - 1];
$('body').append(foo);
foo.css({'left': finalxPos, 'top': finalyPos + 40}).fadeIn('slow');
foo.animate({'top': '+=100px'},1500);
};
animateDrop();
执行代码时,会创建一个新图像,但删除更多项目会导致正在创建的 div 呈指数增长。
它在某处记住所有先前创建的 div 并将所有这些再次附加到正文(至少在我看来是这样)。
我目前被困在防止这种情况的方法上,任何帮助将不胜感激。
2011 年 10 月 24 日更新:animateArray.push($('.animateDrop').first().clone()) 将 .first() 添加到数组推送中解决了创建多个 div 的问题。