【发布时间】:2012-04-05 00:45:17
【问题描述】:
我正在制作一个“类似应用”的网页。实际页面比隐藏溢出的浏览器视口更宽。单击不同的链接会将 CSS 更改为不同部分的动画。这是一个非常简单的演示: http://smartpeopletalkfast.co.uk/pos/
在这个阶段,我正在做一个演示,而不是一个生产站点。我想拦截浏览器的后退按钮,因此如果您导航到某个部分,您将被带回上一个部分,而不是离开网页。在一个完美的世界中,这将发生在与导航到部分相同的动画中。
这可以实现吗?通过研究,我认为不可能拦截和禁用默认的浏览器后退按钮。
我知道他们有很多关于禁用此站点上的浏览器后退按钮的帖子,通常响应是不要!然而,转到我页面中的不同部分就像导航到单独的页面,所以我认为我试图实现的是与用户期望保持一致。
使用基于 AJAX 的应用程序通常可以实现类似的方法是使用 HTML5 的 History API。据我了解,您需要将带有片段的 URL 添加到浏览器的历史记录中,例如 mysite.com#section2。我不确定这对我是否有用,但是因为水平滚动不像垂直滚动那样基于片段链接。也许我可以 使用 JavaScript 检测 URL 何时以 #section2 之类的片段结尾并更改 CSS 以使第二部分在视口中?我想没有办法对此进行动画处理吗?
【问题讨论】:
标签: javascript html web-applications back browser-history