Загрузка данных


(() => {
  addEventListener('wheel', (e) => {
    let el = e.target, sc = null;
    while (el && el !== document.body) {
      const s = getComputedStyle(el);
      if (/(auto|scroll)/.test(s.overflowY) && el.scrollHeight > el.clientHeight + 1) { sc = el; break; }
      el = el.parentElement;
    }
    if (!sc) return console.log('скроллера под курсором нет');
    const before = sc.scrollTop;
    const room = e.deltaY > 0 ? sc.scrollHeight - sc.clientHeight - before : before;
    setTimeout(() => {
      const moved = sc.scrollTop - before;
      console.log(
        room <= 0 ? '— неинформативно: упёрлись в край, крути в другую сторону'
        : moved !== 0 ? 'ОК: прокрутилось на ' + moved
        : 'БАГ: запас ' + room + 'px, колесо не сработало, prevented=' + e.defaultPrevented,
        '|', (sc.className || '').toString().slice(0, 50), '| deltaY:', e.deltaY
      );
    }, 300);
  }, false);
  console.log('готово — крути в обе стороны над списком таблиц');
})();