【发布时间】:2015-07-16 02:24:39
【问题描述】:
让我先说我已经解决了这个线程,试图解决我的问题,但无济于事: Fade in each element - one after another
我认为如果元素不是动态内容,它会很方便地工作,但我制作了一个测试 div 并用缩略图填充它,以及一个用于单击的按钮并分配了类似的代码,但它仍然完全删除了所有没有动画或犹豫的元素。
现在,我的样子是这样的:
function OnThumbSuccess(response) {
var $thumbs = $('#Gallery .thumbWindow .thumbReel');
var files = $.parseJSON(response.d);
$thumbs.children().each(function (i) {
$(this).delay(i*300).animate({ 'opacity': '0' }, 500, 'easeOutSine');
$(this).remove();
})
//make sure the thumb reel resets to its original position
$thumbs.css('left', '0px');
//loop through the array of json objects
for (var i = 0; i < files.length; i++) {
//images[i] = files[i].fileHREF;
InsertHTML(files[i].thumbHref, i);
}
}
所以,它应该淡出该元素,然后将其删除。删除它没有问题;这是它似乎失败的动画。
经过一番修改,我发现我确实可以为它们制作动画,只要我摆脱 $(this).remove() 即可。如果我不需要摆脱这些元素,那就没问题了。
我做什么似乎并不重要。我尝试将.remove() 链接到 animate 函数的末尾,我尝试在清空 div 之前将延迟设置为等于元素数量。我尝试将代码移动以将缩略图 div 从 OnThumbSuccess 函数填充到 ajax.done() 函数。
我真的不知道如何优雅地做到这一点。如果我可以提供任何其他详细信息,请告诉我。
我做了这个测试小提琴,也许这会有所帮助:http://jsfiddle.net/kum8d7k9/
【问题讨论】:
-
是的,我们已经解决了这个问题
-
太棒了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
标签: javascript jquery html css animation