Вам нужен HTML5 History API .
При каждом изменении ваших элементов делаете pushState , где в data сохраняете состояние ваших элементов
Потом ловить переход по кнопкам истории (
window.addEventListener('popstate', …
) и восстанавливать состояние.
Подробнее можно почитать тут:
https://habrahabr.ru/post/123106/
https://developer.mozilla.org/ru/docs/Web/API/Hist...
https://ruseller.com/lessons.php?rub=43&id=2213
https://css-tricks.com/using-the-html5-history-api/