私はjQueryで真のスライドを実行しようとしています(要素が実際に上にスライドするように)、次のことを思いつきました、それが非常に最適化されているかどうかはわかりませんが、それを改善する方法を見つけることができますか?
フィドル:http://jsfiddle.net/gpuHG/1/
アイデアは、.content要素がデフォルトで高さだけ上がっているため、ページから外れるか、ヘッダーの後ろにあります。メニューの項目をクリックすると、ウィンドウが開いている場合は閉じて、要求された項目が下にスライドします。私の解決策は、とても単純なもののためにかなり肥大化しているようです!
jQuery:
$.fn.exists = function() {
return this.length !== 0;
}
$(".content").each(function() {
$(this).hide().css({
"margin-top": "-=" + $(this).outerHeight() + "px"
});
});
$("#navigation ul li").each(function() {
var relatedContent = $("#" + $(this).attr("title") + "-content");
$(this).click(function() {
if (!$(":animated").exists()) {
if ($(".open").exists()) {
$(".current").first().removeClass("current");
$(this).addClass("current");
var element = $(".open").first();
element.removeClass("open").animate({
"margin-top": "-" + element.outerHeight() + "px"
}, 500, function() {
$(this).hide();
relatedContent.show().addClass("open").animate({
"margin-top": "0px"
}, 500);
});
} else {
$(this).addClass("current");
relatedContent.show().addClass("open").animate({
"margin-top": "0px"
}, 500);
}
}
});
});
御時間ありがとうございます、