У меня сложная проблема, с которой я уже давно борюсь.
Проблема: когда я возвращаюсь на предыдущую страницу с помощью кнопки «Назад» в браузере, страница отображается в своем окончательном состоянии после воспроизведения всех анимаций. Я хочу, чтобы он отображался в исходном состоянии и воспроизводил анимацию.
Мой сайт использует базовую анимацию 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. Люди много спрашивали об этой проблеме, но никто, похоже, не пришел к решению, которое действительно сработало. Предложения включают блокировку страницы от кэширования - (не работает, и даже если бы это работало, не было бы очень продуктивным, потому что некоторые страницы действительно должны быть кэшированы) - перезагрузить страницу (приводит к некоторым особым поведениям и в конечном итоге не ' или работать) - с помощью куки-файлов (нигде не приведен конкретный пример кода) или с помощью 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?
Может кто-нибудь посоветует правильный код, пожалуйста?