淡化效果onclick(jQuery)

时间:2010-01-04 11:59:26

标签: jquery tabs fade effect minify

我有这个非常基本的标签块:

$('.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可以进一步压缩吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分: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;
  } );

答案 1 :(得分:1)

而不是

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

DO

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