Как реализовать собственный стек истории в одностраничном мобильном веб-приложении?

У меня есть одностраничное мобильное приложение, разработанное с помощью Backbone и Zepto.

Корректно работает с кнопками назад/вперед в браузере.

Когда пользователь переходит на страницу, новоесодержимое скользит справа, а староесодержимое скользит влево (и выходит из области просмотра). Я хочу, чтобы то же самое произошло, если пользователь нажмет кнопку браузера "вперед". Это все работает.

У меня есть класс, который я добавляю к элементу body navigation-back, который изменит это поведение, поэтому, когда пользователь переходит назад с помощью кнопки «Назад» в браузере, он видит скользящее содержимое backслева, а остальное содержимое скользит справа. В основном прямо противоположно тому, чтобы идти вперед.

Мне нужно определить, перемещается ли пользователь назад, чтобы я мог вызвать альтернативное поведение. Я попытался реализовать свой собственный стек истории, но столкнулся с множеством проблем, когда иногда он помечает переход вперед как навигацию назад, что разрушает визуальную подсказку. Теперь он превратился в кучу хаков и, вероятно, только смутил бы меня, если бы я опубликовал его.

Как лучше всего реализовать собственный стек истории, чтобы я мог определять, перемещается ли пользователь вперед или назад в контексте одностраничного мобильного приложения Backbone?

22
задан alex 1 June 2012 в 07:34
поделиться