2015-07-21 53 views
1

如何在选项卡式内容之间添加淡入淡出效果?我尝试使用fadeIn和fadeOut而不是显示和隐藏,但这会产生不需要的结果。如何添加淡入淡出到这个标签式jQuery内容?

http://codepen.io/saganites/pen/oXPjyG

var tabControls = jQuery('#product-data-tabs-control li'), 
    tabTriggers = tabControls.find('a'), 
    tabs  = jQuery('#product-data-tabs .product-data-tab'), 
    activeClass = 'active-tab'; 

jQuery('#product-data-tabs-control li:first, #product-data-tabs .product-data-tab:first').addClass(activeClass); 

tabs.each(function(){ 
    if(!jQuery(this).hasClass(activeClass)){ 
    jQuery(this).hide(); 
    } 
}); 

tabTriggers.each(function(){ 
    var tab  = jQuery(jQuery(this).attr('href')), 
     parent = jQuery(this).parent(); 
    jQuery(this).click(function(e){ 
    e.preventDefault(); 
    if(!parent.hasClass(activeClass)){ 
     tabControls.removeClass(activeClass); 
     tabs.hide(); 
     parent.addClass(activeClass); 
     tab.show(); 
    } 
    }); 
}); 

回答

0

为什么另起炉灶? jQuery UI已经有了一个.tabs()方法和选项,允许选项卡之间的动画。

+0

同意 - 我用分叉的CodeP开始了en和有限的JS知识。 – Tannie

0

您可以使用".fadeIn('slow')"".fadeOut('slow')"代替.show().hide() 还是有点混乱?欧也可以使用.fadeToggle()代替.show().hide()

tab.fadeToggle('slow'); 
0

第24行的你的Javascript可以通过改变.animate()到:

tab.show().css("opacity", 0).animate({opacity: 1}, 1000); 

更新CodePen:http://codepen.io/anon/pen/pJOwbB

+0

谢谢!这很好。我现在更了解如何将这些东西连接在一起。 – Tannie

+0

很高兴能帮到你!请标记为其他人的答案。 – StaticVoid

+0

我没有足够的代表标记为答案,即使在我自己的问题:( – Tannie