Module: Asciidoctor::Html::Scroll
- Defined in:
- lib/asciidoctor/html/scroll.rb
Overview
Due to mobile dynamic viewport heights, we need custom code for reliable anchor scrolling.
Constant Summary collapse
- SCROLL =
<<~JS (function() { let scrolledOnce = false; const page = document.getElementById('page'); function scrollToElement(e) { if(page.classList.contains('multi')) return; e && e.preventDefault(); scrolledOnce = true; const href = location.hash; const id = href.substring(1); const target = document.getElementById(id); if(!target) return; const rect = target.getBoundingClientRect(); page.scrollTo({ top: rect.top + page.scrollTop, left: 0 }); } addEventListener('load', function() { !scrolledOnce && scrollToElement(); }); addEventListener('hashchange', scrollToElement); })(); JS