Função de rolagem disparando várias vezes em vez de uma vez

Estou tentando criar um site que rola automaticamente para cada seção em uma única ação de rolagem. Isso significa que o código deve verificar se a página está rolada para cima ou para baixo. Acredito que o código abaixo resolve meu problema, mas a ação de rolagem é acionada mais de uma vez enquanto a página está rolando. Você verá que o primeiro alerta na instrução if atinge 5 em vez do 1. desejado. Qualquer ajuda sobre o assunto seria muito apreciada.

[Nota] Estou usando a biblioteca velocity.js para rolar para cada seção dentro do contêiner.

var page = $("#content-container");
var home = $("#home-layer-bottom");
var musicians = $("#musicians");
var athletes = $("#athletes");
var politics = $("#politics");
var bio = $("#politics");
var pages = [ home,musicians,athletes,politics,bio ];

var pageCur = 0;


var lastScrollTop = 0;
page.scroll(function(){

var st = $(this).scrollTop();
var pageNex = pageCur + 1;

if (st > lastScrollTop){
    alert(pageNex);
pages[pageNex].velocity("scroll", { container: $("#content-container") });
} else {
   alert(pageCur-1);
pages[pageCur-1].velocity("scroll", { container: $("#content-container") });
}
lastScrollTop = st;
pageCur = pageNex;
});

questionAnswers(2)

yourAnswerToTheQuestion