平滑的菜单导航

时间:2014-01-20 16:28:57

标签: javascript jquery html layout

我目前正在开发一个网站。目前的布局非常基本。

顶部有一个水平菜单导航,菜单下方有一个主要居中的div,用于保存HTML和信息的其余部分,依此类推。

现在,当用户点击水平菜单中的某个项目时,页面会重新加载以显示包含新HTML的新页面。但是,在每个页面上,我必须将菜单HTML复制到它。这似乎是多余和不必要的。所以我在思考它并想到这种方式......

通过javascript,我获得了html页面并显示在主要内容div上。像这样......

$.get( "newpage.html", function( data ) {
     $("#content-div").html( data );
});

所有脚本,css和html现已加载到主要原始页面上。我可以立即获益两个......

  1. 在显示新页面时,页面具有无缝,平滑的过渡
  2. 菜单
  3. 时没有多余的HTML

    这是最佳的吗?使用$.get();调用加载新的HTML页面作为页面导航的主要方法是一种好习惯吗?还有更好的选择吗?

    我考虑过Jquery Tabs,但这需要预先加载所有HTML,我对此犹豫不决。

1 个答案:

答案 0 :(得分:0)

答案是,这取决于。

如果有多个页面具有相似的布局和简单的元素,那么是的,$.get();方法可以工作,但可以更快更顺畅。

当我遇到这个联结时,我宁愿保留现有的HTML元素,只是将新内容加载到它们中。

同样,我没有完整的代码,所以我可以告诉你(以及其他任何看到此内容的人)我的意思,如果你分享,但这取决于你。

现在,如果某些页面有更复杂的元素,您应该通过重新加载来导航。

在那个空间里,一致性是关键。

为了不使用您的代码,您只需要将您的网站设置为模板。

例如,您可以有三个页面(页眉,页脚和页面本身)并使用PHP加载页眉和页脚,而只需编写一次代码。

了header.html

<html>
<head>
Fill with meta info, title, etc.
</head>

<body>
<div class="nav">
Put the nav here.
</div>

的index.php

<?php include_once "header.html"; ?>
<div class="main">
Just fill it with all the page's content.
</div>
<?php include_once "footer.html"; ?>

footer.html

<div class="footer">
Footer info here.
</div>
</body>
</html>

这允许除了编辑一次之外,无处不在,无冗余的HTML以及CSS编辑都可以在整个网站上保留,只要在每个单独的页面中<div>都在同一个班级

同样,正如我先说的那样,一切都取决于。

如果您有简单的内容而不介意意大利面条代码,那么您最好直接在每次导航使用时替换div信息。

但是,这种方法,至少从我的经验来看,更广泛和多才多艺,所以我建议加载PHP的模板式方法。