我有一個具有挑戰性的問題,我一直在奮戰一段時間。瀏覽器「返回」按鈕與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