2010-01-04 2 views
0

Я это очень простой вкладками блок:Fade эффект OnClick (JQuery)

$('.tabbed-section .panel').hide(); 
$('.tabbed-section .panel:first').show(); 
$('.tabbed-section .tabs li:first').addClass('active'); 
$('.tabbed-section .tabs li a').click(function() { 
    $('.tabbed-section .tabs li').removeClass('active'); 
    $(this).parent().addClass('active'); 
    var currentTab = $(this).attr('href'); 
    var tab_id = $(this).attr('href'); 
    $(this).closest('#hero').attr('class', 'clear ' + tab_id.replace('#', '')); 
    $('.tabbed-section .panel').hide(); 
    $(currentTab).show(); 
    return false; 
}); 

.. он прекрасно работает, но я могу добавить к выцветанию эффект, когда активные изменения вкладки? Я думаю, что для него есть плагин (innerfade), но я хочу избежать использования другого плагина, если это возможно.

Кроме того, можно ли прессовать jQuery выше?

Благодарим за помощь!

ответ

1

Вместо

$('.tabbed-section .panel').hide(); 
$(currentTab).show(); 

сделать

$('.tabbed-section .panel').fadeOut(); 
$(currentTab).fadeIn(); 

?

+1

Вы, вероятно, не хотите этого делать, поскольку оба они будут делать свои анимации одновременно, и это, скорее всего, нарушит макет, так как они оба будут видны какое-то время. Лучше использовать обратный вызов завершения FadeOut, IMO. – rfunduk

+0

Это отлично работает на самом деле, infact thenduks код разрывает макет на долю секунды. – 3zzy

1

Как насчет этого?

$('.tabbed-section') 
    .find('.panel').hide().end() 
    .find('.panel:first').show().end() 
    .find('.tabs li:first').addClass('active').end() 
    .find('.tabs li a').click(function() { 
    var el = $(this); 
    $('.tabbed-section .tabs li').removeClass('active'); 
    el.parent().addClass('active'); 
    var currentTab = el.attr('href'); 
    el.closest('#hero').attr('class', 'clear ' + currentTab.replace('#', '')); 
    $('.tabbed-section .panel').fadeOut('fast', function() { 
     $(currentTab).fadeIn('fast'); 
    }); 
    return false; 
    }); 
+0

Спасибо, это почти работает, всего 2 вещи 1) эффекты затухания испортили нижние элементы на странице в течение секунды и 2) 3-я и 4-я вкладки всегда «мигают» дважды, 1-й и 2-й нет. – 3zzy

+0

Правильно, хорошо, что вы не поставляли разметку, поэтому для меня это довольно невозможно экспериментировать ... Чтобы это выглядело правильно, вам обычно нужно делать именно это, экспериментировать. Если вы запускаете анимацию в одно и то же время, вы не нарушаете свой макет по какой-либо причине, то непременно делаете это. – rfunduk

Смежные вопросы