Есть ли плавный скролл между якорями на чистом JS?
Для современных браузеров ничего придумывать не нужно, все и так уже есть.element.scrollIntoView({ behavior: 'smooth' })
Для остальных можно временно заполифиллить.
Анимация чего угодно на чистом JS https://learn.javascript.ru/js-animation