私は自分のプロジェクトでこのライブラリを使用しています:jQuery Tools Tabs、そして私が読んだことから、デフォルトのエフェクトを使用する代わりにカスタムエフェクトを作成できます。
私はこのような効果を持つことに決めました:デモ. そして、似たようなものを見つけましたが、実装に問題があります。
$.tools.tabs.addEffect("subFade", function(tabIndex, done) {
var conf = this.getConf(),
speed = conf.fadeOutSpeed,
panes = this.getPanes();
var $tab = this.getCurrentTab();
if($tab.hasClass("current")){//Going AWAY from the tab, do hide animation (before the tab is hidden)
$(".tabs-tab").animate({"left" : "0px"}, 300, function(){//I was sliding it behind the tabs when not in use, replace with your own animation
panes.hide();
panes.eq(tabIndex).fadeIn(200, done);
console.log("Done done");
//This is then end of the chain - my animation, hide all then fade in new tab.
});
} else {//going away from any other tab
panes.hide();
panes.eq(tabIndex).fadeIn(200, done);
}
$tab = this.getTabs().eq(tabIndex);
if($tab.hasClass("current")){//Going to my special tab.
$(".tabs-tab").animate({"left" : "-160px"}, 300);//Sliding it out
}
// the supplied callback must be called after the effect has finished its job
done.call();
});
上記は私が試してきたものですが、成功していません。それで、誰かが私が間違っていることを知っているかどうか、そしてそのカスタム効果をデモのように動作させるにはどうすればよいか疑問に思っていましたか?