Проблема, видимо, в том, что при скроллинге вы запускаете большое количество анимаций (.fadeIn(), .fadeOut()). Например, достигая величины прокрутки в 500px, вы запускаете .fadeIn(), и если продолжать прокручивать страницу, .fadeIn() будет вызываться всё снова и снова (т.к. условие y > 500 выполняется), и очередь анимаций будет расти.
Как вариант, можно добавить проверок, чтобы избежать повторных вызовов.
$(document).ready(function(){
var showing = false;
$(window).scroll(function(){
var y = $(window).scrollTop(),
div = $("div.div"),
isVisible = div.is(":visible");
if (y > 500 && !showing) {
showing = true;
div.delay(500).fadeIn(500);
} else if (y < 500 && isVisible && showing) {
showing = false;
div.fadeOut(500);
}
});
});