Немного поздно для этой стороны, но ни один из вышеприведенных ответов не работает особенно хорошо, когда ...
. Для обеспечения всех возможных ситуаций вам необходимо округлить расчетную позицию прокрутки:
Math.ceil(element.scrollHeight - element.scrollTop) === element.clientHeight