したがって、メインページに次のような jQuery ページプリローダーがあります。
<script type="text/javascript">
$(window).load(function() {
$("#preloader").delay(700).fadeOut("slow");
})
<div id="preloader" class="preloader"></div>
これは 4 回表示されます。
- ドメイン名でサイトに入ると、
- F5 キーでメイン ページを更新すると、
- ロゴをクリックすると(クリックしたときにメインページに移動する必要があります);
- «ホーム»メニュー項目をクリックすると。しかし、最初の2回だけ見せたいです。それで、私の頭に浮かんだ最初のアイデアは、
div
クラスを削除して、JSでロゴやメニュー項目をクリックしたときにページ全体にプリローダー画像を表示しないようにすることです。そしてこれを使用しました:
document.getElementById("プリローダー").className = 'test';
しかし、その後...メニュー項目をクリックしてメインページを再度ロードすると、ドキュメントの新しいコピーが作成されるため、プリローダーが再びクラスを持ち、表示されることに気付きました。そこで、AJAX を使用し、メニュー項目やロゴをクリックしてページ全体をリロードしないことにしました。今私はこれを使用します:
<script type="text/javascript">
$(document).ready(function(){
$("#blog, #logo").click(function(){
$("#container").load("/blog");
document.getElementById("preloader").className = 'test';
});
});
</script>
そのため、ロゴまたはメニュー項目をクリックすると、«blog» というカテゴリがコンテナーに読み込まれます。そして、私のサイドバーは次のようになります。
...
<a href="javascript:;" id="logo"><i class="logo"></i></a>
...
<li class="m_blog"><a id="blog" href="javascript:;"><i class="icon"></i>Blog</a></li>
...
だから、それは動作します!プリローダーは、ドメイン名からサイトを開いたときにのみ表示されます。しかし、1つの問題が発生します。カテゴリ«video»を開くと、次のようなアドレスがあります:mysite.com/video/
そして、ロゴやメニューからメインページに戻ったとき、私は同じアドレスを持っています! ページ全体をリロードせずにコンテンツをロードしても、アドレスは変わらないためです。どうすれば修正できますか?お願い助けて!プリローダーを 1 回だけ表示したいだけです。ドメイン名にアクセスしたとき、またはメイン ページを F5 キーで更新したときです。私は HTML と CSS しか知らないので、すでにめまいがしますが、今日から AJAX と jQuery を学び始めます。この件で私を助けてください。