Do you want to know if an element can ever scroll or can currently scroll?
Can an element ever scroll?
An element can scroll if it has a fixed height
(or max-height
) and overflow-y
is scroll
or auto
. But since it’s not easy to tell if an element’s height is fixed or not, it’s probably sufficient to just check overflow-y
:
e.css('overflow-y') == 'scroll' || e.css('overflow-y') == 'auto'
Can an element scroll right now?
An element can scroll right now if its scrollHeight
is greater than its clientHeight
and if it has a scrollbar, which can be determined by comparing clientWidth
and offsetWidth
(taking margins and borders into account) or checking if overflow-y
is scroll
or auto
.