Использование
document.addEventListener("scroll", scrollListener, true);
работает. Слушатель события вызывается. Мне все еще нужно было получить корневой элемент для получения значений прокрутки. В моем случае у меня был элемент-потомок для начала. В любом случае, вот часть кода, который я использовал в своей функции onScroll.
if(!x.scrollObj){
x.scrollObj = x.doc;
var scrollObj = x.bElem.parentNode;
while( scrollObj && scrollObj.nodeName != 'BODY'){
var overflowY = x.doc.defaultView.getComputedStyle( scrollObj, null ).overflowY;
if( overflowY == 'auto' || overflowY == 'scroll'){
x.scrollObj = scrollObj;
break;
}
scrollObj = scrollObj.parentNode;
}
}
var w = x.doc.defaultView;
var scrollY = w.scrollY, scrollHeight = x.doc.body.scrollHeight;
if( x.scrollObj&& x.scrollObj != x.doc ){
scrollY = x.scrollObj.scrollTop;
scrollHeight = x.scrollObj.scrollHeight;
}
Я пытался определить scrollObj перед настройкой функции onScroll, но на cuil.com они фактически установили переполнение позже.