あなたがやろうとしていることには、あなたが持っているほとんどのjQuery + animation CSSは本当に必要ではないようです(私が概念を正しく把握している場合)。
現在持っている jQuery コードと animate.css を削除し、これをプラグインしてみてください。
$('a[href^="#"]').on('click', function(){
// Cache
var _this = $(this);
// Get the section name that you want to show
var section_to_show = $(_this.prop('hash'));
// Hide all other sections except the one you want to show
// but make sure it's not currently being animated
_this.closest('section').not(':animated').animate({
'margin-top': '-100px',
opacity: 0
}, 750, function() {
// Hide the current element so it can be
// faded in next time it's called
$(this).hide();
// Fade in the section that you wanted
section_to_show.css({
opacity: 1,
'margin-top': '0'
}).fadeIn(750);
});
});
各リンクのハッシュと同じ名前のすべてのセクションがあるため、クリックしたリンクからハッシュ値を呼び出し、現在のセクションをフェードアウト (少しスライドアップ + フェードアウト アニメーション) してからフェードすることができます。クリックごとに新しい。
最後に、アニメーションが乱れているように見えるため、セクション.animated .fadeInDown
からクラスを削除します。#start
<section id="start" class="start">
PS すべてのセクションで同じメニューのマークアップを作成しないように、すべてのファンシー セクション アニメーションの外側にある独自のコンテナーにナビゲーションを移動することをお勧めします。ただの提案です。
ここにフィドルの例があります: http://jsfiddle.net/aPPYT/3/