我有一个具有挑战性的问题,我一直在奋战一段时间。浏览器“返回”按钮与jQuery-动画页面
问题:当我使用浏览器的后退按钮返回上一页时,在所有动画播放完毕后,页面将以最终状态显示。我希望它以初始状态显示并重播动画。
我的网站使用了一些基本的jQuery动画。每个页面的初始状态的主要内容都隐藏在浏览器窗口的下边缘之下,当窗口加载时,主要内容将动画显示在浏览器中。当访问者点击任何菜单链接时,主要内容会再次滚动并消失在浏览器窗口的上边缘之上 - 然后加载新页面。
//Animate the content up from below the browser window
$('#maincontent').animate({top: "15%"}, 2000);
和
//Animate the content up to hide above the browser window
$('#menu a').click(function(event) {
event.preventDefault();
var href = this.href;
$('#maincontent').animate({
top: '-300%'
}, 500,
function() {
window.location = href;
});
});
的问题:如何使在它的初始状态页面显示的浏览器的后退按钮被点击时,整个事情与这些代码两位实现?
我浏览了一段时间的StackOverflow。人们问了很多这个问题,但似乎没有人到达真正有效的解决方案。建议包括阻止页面被缓存 - (不起作用,即使它工作,也不会很有成效,因为有些页面确实需要缓存) - 重新加载页面(导致一些特殊的行为,最终导致无法访问)或者使用cookie(没有给出任何具体的代码示例)或使用php(没有给出任何具体的代码示例)。我在本网站上询问了几个关于此问题的问题,并收到了一些建议,但其中没有一个适用于我的情况。所以在经历了几个不眠之夜之后,我想问问是否有人能够真正帮助这个。
如果有人在成功之前处理过这个问题,我将不胜感激,如果您能分享您的专业知识并提出可行的解决方案!
新编辑:我想我可能已经找到了解决方案,,但我希望有人对jQuery/JavaScript语法的帮助。我想尝试修改代码以向其添加一个更多操作,但我不确定如何编写它,以便页面在位置更改为新页面之前重新加载因此,而不是第二个上面显示的片段,我想写这样的事情:
//Animate the content up to hide above the browser window
$('#menu a').click(function(event) {
event.preventDefault();
var href = this.href;
$('#maincontent').animate({
top: '-300%'
}, 500,
function() {
// a code that reloads the same page, something like
//window.location = window.location; followed by
window.location = href;
});
});
- 但我只是不知道如何正确书写它。
或者,也许有可能将页面的css值重置为来自css文件的默认值,并再次触发JavaScript?
请问有人能建议正确的代码吗?
怎么样的window.onload? – mihsathe 2011-06-02 14:36:01
是的,它呢? – 2011-06-02 14:36:20