该网站非常简单,仅包含 4 个使用相同模板的页面。我希望用户能够通过单击顶部的链接无缝浏览不同的页面,而无需重新加载任何内容。
基本上,当用户第一次登陆网站时,应该加载整个网站。然后,在第一个页面完成加载后,用户可以单击顶部的任何链接,并且新网页将显示而无需重新加载任何内容。
我知道我应该使用 Jquery 或 Javascript 来完成此操作。我只是不确定 Jquery / Javascript 函数是做什么的。所有的网页都非常简单和相似。
该网站非常简单,仅包含 4 个使用相同模板的页面。我希望用户能够通过单击顶部的链接无缝浏览不同的页面,而无需重新加载任何内容。
基本上,当用户第一次登陆网站时,应该加载整个网站。然后,在第一个页面完成加载后,用户可以单击顶部的任何链接,并且新网页将显示而无需重新加载任何内容。
我知道我应该使用 Jquery 或 Javascript 来完成此操作。我只是不确定 Jquery / Javascript 函数是做什么的。所有的网页都非常简单和相似。
基本上你只想为每个“页面”(实际上只是 div 或类似的东西)分配一个 id 或类,然后在你的 CSS 文件中,将它们中的每一个设置为 display:none。然后使用 jQuery 的 .show() 和 .hide() 来显示或隐藏它们。
更具体地说,您希望将一些处理程序绑定到导航,例如对于主页导航项:
$("#my-home-nav").click(function(){
$("#my-home-div").show(); // or .fadeIn(), etc.
$("#my-about-div").hide();
$("#my-contact-div").hide();
});
如果页面很多,上述内容可能会使编写这种冗长的内容,并且添加额外的页面会有些困难。类似下面的内容可能更容易添加额外的页面:
var pageNames = ["home", "about", "contact"];
var namespace = "my";
var pages = pageNames.map(function(pageName) {
return {
nav: pageNameSelector(pageName, "nav"),
div: pageNameSelector(pageName, "div")
};
});
pages.forEach(function(page) {
page.nav.click(function() {
clearPages(pages);
page.div.show();
});
});
function pageNameSelector(pageName, type) {
return $(["#" + namespace, pageName, type].join("-"));
}
function clearPages(pages) {
pages.forEach(function(page) {
page.div.hide();
});
}
因此,您所要做的就是遵循相同的约定来识别其他页面,其中给出了 nav/div 的 id,NAMESPACE-PAGENAME-TYPE
并且当您向 中添加额外的页面名称时pageNames
,显示/隐藏功能将正常工作。
你几乎在描述标签。您可以为此使用 jQuery UI 选项卡:http: //jqueryui.com/tabs/
或者您也可以滚动您自己的标签 - 隐藏内容,然后在单击链接时显示正确的内容,隐藏所有其他内容。我倾向于自己构建,因为我可以让它完全按照我的意愿工作,而且它没有任何不需要的额外开销“东西”。如果您尝试但它不起作用,那么总有 jQuery UI 可以依靠。
有一个名为JQuery Tools的 JQuery 插件,它为常见的网页设计功能提供了一个简单的界面,包括您需要的功能。具体来说,选项卡功能允许您<div>
在单击 a 中的链接时加载某些 's <ul>
。从http://jquerytools.org/demos/tabs/index.html:
<!-- the tabs -->
<ul class="tabs">
<li><a href="#">Tab 1</a></li>
<li><a href="#">Tab 2</a></li>
<li><a href="#">Tab 3</a></li>
</ul>
<!-- tab "panes" -->
<div class="panes">
<div>First tab content. Tab contents are called "panes"</div>
<div>Second tab content</div>
<div>Third tab content</div>
</div>
您需要的唯一 JavaScript 是:
// perform JavaScript after the document is scriptable.
$(function() {
// setup ul.tabs to work as tabs for each div directly under div.panes
$("ul.tabs").tabs("div.panes > div");
});
这将使所有链接ul.tabs
导航到直接为子级的每个 div div.panes
(因此>
- 如果需要,请确保它在那里)。
您也可以使用框架。一个网页可能包含多个框架,您还可以使其中一些不可见(包括一个开关)。检查此链接: http: //www.pageresource.com/jscript/jframe1.htm