我想对我的prepend()函数进行转换。每次在#instafeed div中添加一个项目时,它都应先淡出,然后再添加,最后再淡入。目的是使添加的过渡尽可能平滑,以使用户看不到项目更改,直到它再次消失。

问题在于,即使设置时间,项目更改也会在淡出之前发生。

通缉:fadeOut ==> prepend ==> fadeIn

发生了什么:prepend ==> fadeOut ==> fadeIn

$(function($){
    $('.thebutton').click(function(){
        $('#instafeed').fadeOut(3000).prepend($('#instafeed div:last')).fadeIn(3000);
    });

    setInterval( function(){
        $('.thebutton').trigger('click');
    }, 9000);
});


我该怎么办?

最佳答案

您需要在prepend()的回调中执行fadeIn()fadeOut(),以便在动画结束时执行它们。尝试这个:

$('.thebutton').click(function(){
    $('#instafeed').fadeOut(3000, function() {
        $(this).prepend($('#instafeed div:last')).fadeIn(3000)
    });
});

关于javascript - 预先淡出过渡,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34631390/

10-16 14:11