Для сохранения позиции скролла в VK Mini App можно использовать локальное хранилище, чтобы сохранять положение прокрутки при переходе между страницами.
Вот пример, как это можно реализовать:
1. **Сохранение позиции скролла**. В момент, когда пользователь покидает страницу, вы можете сохранить позицию прокрутки в локальное хранилище.
```javascript
window.addEventListener('beforeunload', () => {
const scrollPosition = window.scrollY;
localStorage.setItem('scrollPosition', scrollPosition);
});
```
2. **Восстановление позиции скролла**. При загрузке страницы, вам нужно будет проверить, сохранена ли позиция скролла, и если да, установить её.
```javascript
window.addEventListener('load', () => {
const savedScrollPosition = localStorage.getItem('scrollPosition');
if (savedScrollPosition) {
window.scrollTo(0, parseInt(savedScrollPosition, 10));
}
});
```
3. **Отключение прокрутки вверх при переходе между страницами**. Это может происходить из-за того, что при загрузке новой страницы браузер устанавливает прокрутку в начало. Убедитесь, что скролл восстанавливается сразу после загрузки контента страницы. Если это не помогает, вы можете попробовать добавить небольшую задержку для установки скролла, чтобы дать время загруженному контенту:
```javascript
window.addEventListener('load', () => {
const savedScrollPosition = localStorage.getItem('scrollPosition');
if (savedScrollPosition) {
setTimeout(() => {
window.scrollTo(0, parseInt(savedScrollPosition, 10));
}, 100); // Задержка в 100 мс
}
});
```
Эти простые шаги должны помочь вам сохранить и восстанавливать позицию прокрутки в вашем мини-приложении ВКонтакте. Если вы используете фреймворки, такие как React или Vue, вам нужно будет адаптировать этот код под их жизненные циклы компонентов.