у меня есть div, который выскальзывает из экрана, загружает новый контент и скользит обратно. Я использую jquery pjax, и эта часть отлично работает:
$('#menu a').on('click', function(event){
event.preventDefault();
var target = $(this).attr('href');
$('li.current').removeClass("current");
$(this).parent().addClass("current");
$(content).transition({left:$(document).width()}, 900, 'out', function() {
$.pjax({
url: target,
container: '#content',
fragment: '#content',
success: function(){
$(content).transition({ left:'0px'}, 900, 'out');
var contentHeight = $('#content').outerHeight(true)+258+$("#footer").outerHeight(true);
if(contentHeight<parseInt($("body").css("min-height"))){
contentHeight = "100%";
}
$(page).stop(true).animate({height:contentHeight}, 1000, "easeOutCubic");
}
});
});
});
Но я не понимаю, как это работает, если используются кнопки браузера назад/вперед. Я пробовал разные вещи. Здесь я нашел хорошую статью, но не понимаю ее: http://artfindertech.wordpress.com/tag/historyapi/
Дело в том, что содержимое div меняется в тот момент, когда вы нажимаете кнопку «Назад» в браузере. Потом выходит, но не обратно. Также URL-адрес на секунду меняется на предыдущую страницу, но переходит на основной URL-адрес сайта. Вот моя пробная версия для popState:
$(window).on('pjax:popstate', function() {
$(content).transition({left:$(document).width()}, 900, 'out', function() {
$.pjax({
container: '#content',
fragment: '#content',
success: function(){
$(content).transition({ left:'0px'}, 900, 'out');
var contentHeight = $('#content').outerHeight(true)+258+$("#footer").outerHeight(true);
if(contentHeight<parseInt($("body").css("min-height"))){
contentHeight = "100%";
}
$(page).stop(true).animate({height:contentHeight}, 2000, "easeOutCubic");
}
});
});
});