如果slidetoggle打开则显示特定的背景位置

时间:2012-08-04 12:22:28

标签: jquery toggle

任何想法如何设置背景位置,因此当关闭选项卡时,背景总是“背景位置”,“5%50%” 如果标签打开,它的背景位置总是“背景位置”,“5%115%”?

我假设某处需要if(element).is(':hidden')语句。

谢谢!

$('.blue-tab').toggle(function() {  
        var group = $(this).parent('.group-wrap').children('.indi-group');  
            $('.indi-group').not(group).hide(300);
            group.slideToggle(600, function() {
                $(this).parent('.group-wrap').children('.blue-tab').css('background-position', '5% 115%');
            });
    }, function() {
        var group = $(this).parent('.group-wrap').children('.indi-group');
            $('.indi-group').not(group).hide(300);
            group.slideToggle(600, function() {
                $(this).parent('.group-wrap').children('.blue-tab').css('background-position', '5% 50%');
            });
        return false;
    });

1 个答案:

答案 0 :(得分:0)

您需要使用.is(":visible") - jQuery Docs
您可以使用它来测试所选元素是可见还是隐藏。

所以你会做这样的事情:

if($('.blue-tab').is(":visible")){
    // Change your BG position to '5% 115%'
    $(this).parent('.group-wrap').children('.blue-tab').css('background-position', '5% 115%');
} else {
    // Its not visible.. so change the position to '5% 50%'
    $(this).parent('.group-wrap').children('.blue-tab').css('background-position', '5% 50%');
}

确保在开始任何动画之前调用此方法,如果元素处于转换中期,则它始终是可见的(TRUE),尽管它的动画输入或输出。