Предотвращение перехода на страницу при падении элемента DOM - PullRequest
0 голосов
/ 11 октября 2019

Допустим, я нахожусь на странице веб-сайта с формой и выбором радио, как показано ниже enter image description here

Когда пользователь веб-сайта выбирает одну из этих кнопок, функция JSбудет сработать, чтобы свернуть модуль переключателя. А пока за экраном идет большой расчет.

Проблема в том, что при низкой скорости сети, особенно на мобильном устройстве, после выбора переключателя может потребоваться 5 секунд или даже больше, чтобы свернуть модуль радиосвязи.

Изображение это: мой пользователь нажимает одну радиокнопку, модуль выполняет вычисления в фоновом режиме, пользователь продолжает переход к разделу формы, теперь пользователь видит только раздел формы на своем телефоне, и в этот момент времени, мой модуль рухнул. Пользователь увидит, как содержимое формы подпрыгивает, больше не в его точке зрения.

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

Как это сделать?

Я думаю:

  1. Когда модуль собираетсясвернуть, вызвать функцию JS.

  2. Функция JS должна иметь возможность отмечать местоположение точки текущего пользователя на странице.

  3. JSЗатем функция должна заставить точку обзора оставаться в одном и том же месте, несмотря на то, что содержимое выше или уменьшено или уменьшено.

  4. Функция JS должна использоваться для поддержки всех браузеров, мобильных устройств.

  5. Функция JS не должна нарушать доступность.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 12 октября 2019

Я думаю, что у вас здесь неправильный план. Пользователю все равно, когда выбор успешно отправлен на сервер;только когда выбор успешно получен веб-страницей. То есть, когда пользователь выбирает опцию, модуль должен НЕМЕДЛЕННО свернуться.

Ваш веб-сайт может отправлять данные на сервер во время свертывания модуля или даже после его свертывания;пользователю все равно.

1 голос
/ 11 октября 2019

Вы можете использовать метод element.getBoundingClientRect(), чтобы получить положение определенного элемента на экране, а затем метод scrollBy, чтобы переместить экран к этому элементу.

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