Ciao, anziché document usa html o, meglio ancora, entrambi gli elementi html e body, perché alcuni browser applicano lo scorrimento all'uno piuttosto che all'altro. E' consigliato anche applicare uno stop() prima di animate(), perché se si clicca consecutivamente più volte, prima che sia completamente terminata l'animazione, si crea una coda di animazioni uguali che può causare problemi nell'esecuzione.

codice:
jQuery('html, body').stop().animate({...