在fadeIn之前添加fadeOut到用作基于类的过滤器的脚本

时间:2016-09-21 02:06:34

标签: javascript jquery

我正在使用此脚本根据类过滤元素。目前它停止前一个函数并淡入新类,我需要它停止,淡出一切(它可以是特定类,例如.all)然后淡出现在。我无法将淡出添加到脚本中。

感谢您的帮助。

继承剧本:

<script>
$('div.tags').delegate('input[type=radio]', 'change', update);
update();
function update() {
    var $lis = $('.results > div'),
        $checked = $('input:checked');
    if ($checked.length) {
        var selector = $checked.map(function () {
            return '.' + $(this).attr('rel');
        }).get().join('');

        $lis.hide().filter(selector).stop().fadeIn(1000, 'easeInCirc');

    } else {
        $lis.stop().fadeIn(1000, 'easeInCirc');
    }
}
</script>

基本上我需要在开始淡化选择器之前淡出一切。目前它是从100%不透明度到选择器开始消失的急剧削减,我希望平滑淡出当前(或特定类)并在此之后消失。

1 个答案:

答案 0 :(得分:0)

然后你必须使用完整的回调:

<script>
$('div.tags').delegate('input[type=radio]', 'change', update);
update();
function update() {
    var $lis = $('.results > div'),
        $checked = $('input:checked');
    if ($checked.length) {
        var selector = $checked.map(function () {
            return '.' + $(this).attr('rel');
        }).get().join('');

        $lis.fadeOut(200, function({
    $lis.filter(selector).stop().fadeIn(1000, 'easeInCirc')
});

    } else {
        $lis.stop().fadeIn(1000, 'easeInCirc');
    }
}
</script>