あなたの質問を正しく理解できれば、別のページにリンクするのではなく、ナビゲーションを新しいコンテンツにフェード インさせたいと考えています。その場合、CSS3 または jQuery のどちらでも機能しますが、ブラウザーの下位互換性があるため、jQuery をお勧めします。IE 9 より古いものは、CSS3 トランジションを解釈しません。さらに、CSS3 でクリックを検出する良い方法がないため (この質問を参照してください)、最終的にそこで jQuery を使用することになります。コードは次のとおりです。
メニュー:
<ul id="navigation" class="select">
<div id="test">
<li><a id="link-home" href="#">Home</a></li>
<li><a id="link-about" href="#">about</a></li>
<li><a id="link-contact" href="#">contact</a></li>
</div>
</ul>
コンテンツ:
<div id="home">
<h2>This is home.</h2>
</div>
<div id="about">
<h2>This is about.</h2>
</div>
<div id="contact">
<h2>This is contact.</h2>
</div>
jQuery:
$(document).ready(function () {
var animTime = 600;
$("#about").hide();
$("#contact").hide();
$('#link-home').click(function() {
$("#about").fadeOut(animTime);
$("#contact").fadeOut(animTime);
$("#home").delay(animTime).fadeIn(animTime);
});
$('#link-about').click(function() {
$("#home").fadeOut(animTime);
$("#contact").fadeOut(animTime);
$("#about").delay(animTime).fadeIn(animTime);
});
$('#link-contact').click(function() {
$("#home").fadeOut(animTime);
$("#about").fadeOut(animTime);
$("#contact").delay(animTime).fadeIn(animTime);
});
});
これは、既に持っているコードで動作するはずです。マークアップの ID が jQuery の ID と一致していることを確認してください。フェードインの時間を調整したい場合は、 の値を変更するだけですanimTime
。この数値は、アニメーション時間をミリ秒単位で測定します。animTime
他の div がアニメーション化されてから新しい div がアニメーション化されるため、アニメーションにかかる実際の時間は 2 倍になります。