Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Для общего понимание. (https://javascript.ru/forum/misc/80562-dlya-obshhego-ponimanie.html)

Сергей Ракипов 07.07.2020 18:54

Цитата:

Сообщение от voraa (Сообщение 526846)
А цель то какая?
Сначала сделать плавный роллинг, а потом перейти по ссылке (куда)?
Так не получится. Плавная прокрутка асинхронна. Переход пойдет сразу до ее завершения

Есть такое понятие как якоря, их делают через ссылки, они позволяют перемещаться по странице.

voraa 07.07.2020 18:58

Цитата:

Сообщение от Сергей Ракипов
Есть такое понятие как якоря, их делают через ссылки, они позволяют перемещаться по странице.

Якорь - это один способ перемещения. Только с помощью HTML реализуется.
А scrollIntoView - другой, реализуется средствами JS.
Их не надо смешивать. Либо одно, либо другое.

Сергей Ракипов 07.07.2020 22:17

voraa,
Вы знаете почему не работает на ссылки?

voraa 07.07.2020 22:30

Я же объяснил
При клике на ссылку начинает работать ваша функция, которая вызывает плавный скроллинг. Но JS не ждет, когда закончится этот процесс, а сразу запускает действие по умолчанию - переход (перемещение по странице). Ссылка href="#" - трактуется как переход на самый верх страницы
Вы даже сами можете попробовать. Зайдите в отладчик, поставьте точку останова на строке
console.log(`работает`);
Нажмите свою ссылку. Страница плавно прокрутится вниз. Точка останова не даст выполнится действию по умолчанию сразу. Если продолжить выполнение, то страница сразу переместится вверх, как и положено при <a href="#">

Сергей Ракипов 07.07.2020 23:23

voraa,
понял спасибо


Часовой пояс GMT +3, время: 08:22.