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 =
"(function() {\n const page = document.getElementById('page');\n let scrolledOnce = false;\n function scrollToElement(e) {\n e && e.preventDefault();\n scrolledOnce = true;\n const href = location.hash;\n const id = href.substring(1);\n const target = document.getElementById(id);\n if(!target) return;\n\n const rect = target.getBoundingClientRect()\n page.scrollTo({\n top: rect.top + page.scrollTop,\n left: 0,\n behavior: 'smooth'\n });\n }\n addEventListener('hashchange', scrollToElement);\n addEventListener('load', function() {\n !scrolledOnce && scrollToElement();\n });\n})();\n"