Вы можете использовать методы включения / выключения, чтобы отменить привязку слайда после нажатия кнопки «X».
$("#topDiv").hide();
$(window).on('scroll', showTopDiv);
function showTopDiv() {
if ($(window).scrollTop() + $(window).height() > $(document).height() - 500) {
$("#topDiv").slideDown();
}
}
$(window).on('scroll', function() {
if ($(window).scrollTop() + $(window).height() < $(document).height() - 800) {
$("#topDiv").slideUp();
}
});
$("#closeTop").click(function () {
$("#topDiv").slideUp();
$(window).off('scroll', showTopDiv);
return false;
});
Кроме того, в вашей функции слайда добавление $("#topDiv").is(':visible')
к оператору if обеспечит егоне выполняется без необходимости.
И действительно ли необходимо привязывать функцию щелчка к каждой прокрутке?