Как на счет такого алгоритма:
- После загрузки документа составляем массив из якорей и их смещения от верха страницы. Отдельную переменную для активного якоря заготавливаем.
- Прицепляемся на resize окна и обюновляем значения
- По scroll ставим флаг, начинаем анимировать scrollTop до соотв. якоря. По окончании анимации флаг снимаем.
- Если скролл вызывается еще раз, а флаг не сброшен - ничего не делаем.
Что-то вроде такого:
https://jsfiddle.net/phgsmn8k/