所以,我在主页上有 jQuery 页面预加载器,如下所示:
<script type="text/javascript">
$(window).load(function() {
$("#preloader").delay(700).fadeOut("slow");
})
<div id="preloader" class="preloader"></div>
这显示了 4 次:
- 当我通过域名进入网站时;
- 当我按 F5 刷新主页时;
- 当我单击徽标时(单击该徽标时我必须转到主页);
- 当我单击“主页”菜单项时。但我只想在前两次展示它。因此,我想到的第一个想法是删除
div
类,以便在我单击 JS 的徽标或菜单项时不在整个页面上显示预加载器图像。并使用了这个:
document.getElementById("preloader").className = 'test';
但是后来...我意识到通过单击菜单项再次加载主页,我创建了文档的新副本,因此我的预加载器再次拥有他的课程并出现了。所以,我决定使用 AJAX 并且不通过单击菜单项或徽标来重新加载整个页面。现在我用这个:
<script type="text/javascript">
$(document).ready(function(){
$("#blog, #logo").click(function(){
$("#container").load("/blog");
document.getElementById("preloader").className = 'test';
});
});
</script>
因此,当我单击徽标或菜单项时,我会在容器中加载名为“博客”的类别。我的侧边栏看起来像这样:
...
<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个问题。当我打开类别«视频»我有这样的地址:mysite.com/video/
当我通过徽标或菜单回到主页时,我有相同的地址!因为没有重新加载整个页面和地址的内容加载不会改变。我该如何解决?请帮帮我!我只想显示我的预加载器一次:当我通过域名或按 F5 刷新主页时。我已经头晕了,因为我只知道 HTML 和 CSS,但是今天开始学习 AJAX 和 jQuery。在这件事上帮助我。