Animowane gładkie przewijanie JavaScript

Domyślnie, gdy masz linki fragmentów w ten sposób:

<a href="/some-url#some-fragment">some text</a>

przeglądarka tylko, natychmiast przewija w dół do tego fragmentu. Jak zaprogramować go, aby płynnie przejść do tego fragmentu za pomocą standardowego JS?

Oto przykład:

Przykład (Aby zobaczyć przykład pracy, wystarczy kliknąć 3 strzałki w 3 okręgach i oglądać płynne animowane przewijanie)

questionAnswers(2)

yourAnswerToTheQuestion