javascript - 无法获取元素动画以等待 jquery 中的另一个元素动画

标签 javascript jquery html css

如果您转到相册(例如 Nature,因为仍在处理其他相册)并单击其中一张图像,它们都会淡出,然后您单击的图像似乎只出现在屏幕上。发生的事情是随着缩略图淡出,它仍在淡入。我尝试将其余代码添加到 .complete() 中,但这似乎破坏了它。

$(document).ready(function(){


$('.photos').on('click', function() {

    var src = $(this).attr('src').replace('thumb-','');
    $('.photos').stop().fadeOut(500);
        $('.enlarged').remove();
        $('#album').append('<img class="enlarged" src="' + src + '">');
        $('.enlarged').hide();
        $('.enlarged').stop().fadeIn(500).done(
            $('.enlarged').on('click', function () {

                $(this).stop().fadeOut({

                    duration: 500,
                    done: this.remove()
                });

                $('.photos').stop().fadeIn(500);

            })
        );
});

});

最佳答案

您可以使用 promise捕捉完整的淡出动画:

$(document).ready(function(){

  $('.photos').on('click', function() {

    var src = $(this).attr('src').replace('thumb-','');
    var photos = $('.photos');
    photos.stop().fadeOut(500);

    photos.promise().done( function() {
        $('.enlarged').remove();
        $('#album').append('<img class="enlarged" src="' + src + '">');
        $('.enlarged').hide();
        $('.enlarged').stop().fadeIn(500).done(
            $('.enlarged').on('click', function () {

                $(this).stop().fadeOut({    
                    duration: 500,
                    done: this.remove()
                });

                $('.photos').stop().fadeIn(500);

            })
        );
    });

  });

});

关于javascript - 无法获取元素动画以等待 jquery 中的另一个元素动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35387559/

相关文章:

javascript - 未捕获的类型错误 : Cannot read property 'then' of undefined in React ajax Call?

javascript - 在下拉列表中添加新项目

javascript - Jquery 对特定包装器使用名称选择器

jquery - CSS 'scale' 破坏了 jQuery 'fadeIn'

javascript - PHP+JS getElementById().value 返回 int 而不是 float

javascript - MediaRecorder ondataavailable 工作成功一次

javascript - javascript 中的 Json 响应未正确循环

javascript/jquery 将数组转换为字符串,在每个字符串之前添加一些内容

HTML5/CSS 宽度和边框

javascript - 如何使用 JQuery 多次更改禁用标签