如何在标签内容之间添加淡入淡出?我尝试使用fadeIn和fadeOut而不是show和hide,但这会产生不需要的结果。
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 :(得分:0)
为什么重新发明轮子? jQuery UI已经有一个.tabs()
方法和选项,允许选项卡之间的动画。
答案 1 :(得分:0)
您可以使用".fadeIn('slow')"
,".fadeOut('slow')"
代替.show()
和.hide()
还是有点混乱?您也可以使用.fadeToggle()
代替.show()
和.hide()
<强>像强>
tab.fadeToggle('slow');
答案 2 :(得分:0)
您的Javascript第24行可以使用.animate()更改为:
tab.show().css("opacity", 0).animate({opacity: 1}, 1000);
更新了CodePen:http://codepen.io/anon/pen/pJOwbB