Javascript 在页面中导航时保持固定位置的标题(永远不会重新加载)
我发现所有页面都有相同的标题,在浏览页面时从不重新加载。页眉加载一次后,它将保持不变,其余布局(内容和页脚)将从一页加载到另一页。这很像你有一个框架集,但它不是。 鼠标悬停在上面的菜单上,点击任何项目,你就会明白我的意思 这种技术叫什么?我想知道它的名字,这样我就可以研究和了解它Javascript 在页面中导航时保持固定位置的标题(永远不会重新加载),javascript,jquery,html,css,header,Javascript,Jquery,Html,Css,Header,我发现所有页面都有相同的标题,在浏览页面时从不重新加载。页眉加载一次后,它将保持不变,其余布局(内容和页脚)将从一页加载到另一页。这很像你有一个框架集,但它不是。 鼠标悬停在上面的菜单上,点击任何项目,你就会明白我的意思 这种技术叫什么?我想知道它的名字,这样我就可以研究和了解它 谢谢。使用的技术是Angular JS。如果你想学习这项技术,你可以 使用或 。如果要查看页面源代码,可以右键单击,然后转到“检查”,右键单击,然后转到“检查”“查看页面源代码”。通过检查,您将看到后端发生的实时更改
谢谢。使用的技术是Angular JS。如果你想学习这项技术,你可以 使用或
。如果要查看页面源代码,可以右键单击,然后转到“检查”,右键单击,然后转到“检查”“查看页面源代码”。通过检查,您将看到后端发生的实时更改 您可以通过 对于您建议的站点,将有三层
我不知道这个人是如何做到的,但你如何做到这一点是: 当用户单击菜单项时,使用ajax加载内容(无刷新) 您可以更新url: 这将在不刷新的情况下更新url
如果用户登录到特定的url,您可以根据url传递所需的数据以加载正确的内容。查看您提交的网站后,我能够找到一个javascript文件,正如许多人建议的那样,该文件使用ajax将内容加载到页面中而无需重新加载,加载网页后,脚本会触发hashchange,该脚本会更改url以匹配您使用@escapedcat建议的
window.history.pushState
单击的url,javascript还会处理动画并更改网页中某些元素的类以反映其状态(更新等)
代码是丑陋的,但你仍然可以看到这是如何做到的
编辑
index.html
第1页
这是默认内容
$('nav a')。在('click',函数(e)上{
e、 预防默认值();
console.log('test');
$.get(this.href,函数(数据){
$('#content').html(数据);
console.log(this);
pushState({foo:'bar',第二页,'page.html');
});
});
page.html
第2页
这是第2页
以上更改了url,您仍然需要进一步开发代码以获得完整的功能,即(后退按钮)
您可以参考添加此类功能
编辑:
当文档声明pushState方法接收3个参数时,一个状态对象包含与新历史记录条目、页面标题和页面url关联的序列化信息,每次用户导航到一个新的历史记录条目时,popstate方法都会被激发,并且状态会改变以表示当前状态,您也可以使用它
他们自己的网站是用meteor.js建立的,你可以清楚地看到你想要的功能 这种技术被称为“水疗”。
您可以使用任何希望使用的框架或库(例如AngularJS、ReactJS、jQuery等)创建SPA,只要遵循一些指导原则即可
单页应用程序(SPA)是指
适用于单个网页,目的是提供更流畅的
类似于桌面应用程序的用户体验。在水疗中心,或者
必要的代码–HTML、JavaScript和CSS–通过
单页加载,或动态加载相应的资源
根据需要加载并添加到页面,通常是为了响应用户
行动
假设我们没有提前加载所有内容,基本准则如下:
- 例如,我的网站中的所有页面都应该返回相同的标题并加载相同的javascript文件,根据URL,更改的部分只是我的
元素,它包含特定页面的html#content
- 使用
event.preventDefault()
- 使用(
)自己更改URLhistory.pushState(stateObj,title,path)
- 使用Ajax加载内容,并用新内容替换现有内容
window.addEventListener('popstate',handler)
)
- 根据新URL加载内容
关于“如何”,这完全取决于您是否了解水疗中心的工作流程。该网页是使用PHP创建的。谢谢,我会看一看。我知道页面是用php编写的,但是这种技术也可以用于html页面?我试着把网站下载到我的电脑上,但是菜单在这里都不显示。是的,你可以在HTML页面上实现它。它不工作的原因是因为JQuery文件必须是外部的。他所做的是JQuery(隐藏和显示方法),您可以查看上面的站点了解更多信息。希望您已经得到您的答案:-)URL更改是通过完成的。看起来它加载了一个不同的页面,但实际上不是。它只是用JavaScript操纵URL。该网站确实使用php,这就是为什么下载它的原因
$(document).ready(function(){
$("menu-item").click(function(){
$("#content").load("something");
});
});
window.history.replaceState(“object or string”, “Title”, “/another-new-url”);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Page 1</title>
</head>
<body>
<header>
<nav><a href="page.html">Link</a></nav>
</header>
<div id="content">
this is the default content
</div>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.0.min.js"></script>
<script type="text/javascript">
$('nav a').on('click', function(e){
e.preventDefault();
console.log('test');
$.get(this.href, function(data){
$('#content').html(data);
console.log(this);
history.pushState({foo:'bar'}, 'second page', 'page.html');
});
});
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Page 2</title>
</head>
<body>
This is page 2
</body>
</html>