Как прокрутить вверх после изменения хэша маршрута?

У меня есть несколько страниц в моем приложении Ext js. Каждая страница загружает контент через запросы ajax. На первой странице есть список элементов (ссылки). Когда я прокручиваю страницу вниз и нажимаю на последний элемент, он перенаправляет меня на вторую страницу. На второй странице содержимое загружено, и страница переходит (прокручивается) в положение, в котором я щелкнул элемент ссылки (вниз страницы).

Я пробовал window.scrollTo(0, 0); и window.scroll(0, 0); при нажатии на элемент ссылки и метод init на второй странице, но это не сработало (это работает для первой страницы, но когда я перехожу на вторую страницу, он игнорирует позицию и перемещается вниз страницы).

Единственный способ справиться с этим - использовать setTimeout(() => window.scrollTo(0, 0), 1000), но он показывает мне старую позицию в течение нескольких миллисекунд, а затем перемещается вверх

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


person Mike    schedule 02.09.2019    source источник
comment
Пожалуйста, добавьте минимальный рабочий пример кода, в котором мы можем воспроизвести вашу проблему.   -  person cloned    schedule 02.09.2019
comment
Не могли бы вы добавить скрипку?   -  person Brandon    schedule 03.10.2019


Ответы (1)


Вы можете попробовать добавить свой код для прокрутки вверх внутри обратного вызова ajax.

Ext.Ajax.request({
     url: 'ajax_demo/sample.json',

     success: function(response, opts) {
         window.scrollTo(0, 0);
     },

     failure: function(response, opts) {
         console.log('server-side failure with status code ' + response.status);
     }
 });
person gmazoni    schedule 02.09.2019