Module: Asciidoctor::Html::Sidebar
- Defined in:
- lib/asciidoctor/html/sidebar.rb
Overview
Toggle behaviour of sidebar
Constant Summary collapse
- TOGGLE =
<<~JS ADHT.nudgeMenuBtn = function() { const menuBtn = document.getElementById('menu-btn'); if(!menuBtn) return; // Nudge menuBtn in case there is a scrollbar const main = document.getElementById('main'); const scrollbarWidth = page.offsetWidth - main.offsetWidth; menuBtn.animate( { transform: 'translateX(' + (-scrollbarWidth) + 'px)' }, { fill: 'forwards', duration: 150 } ); // Cache scrollbar width ADHT.scrollbarWidth = scrollbarWidth return menuBtn; }; (function() { const page = document.getElementById('page'); const sidebar = document.getElementById('sidebar'); const dismissBtn = document.getElementById('sidebar-dismiss-btn'); function hideSidebar() { sidebar && sidebar.classList.remove('shown'); page.classList.remove('noscroll'); } // Sidebar should be hidden on any local link click document.querySelectorAll('a[href^="#"]').forEach(el => { el.addEventListener('click', hideSidebar); }); addEventListener('resize', hideSidebar); dismissBtn && dismissBtn.addEventListener('click', hideSidebar); const menuBtn = ADHT.nudgeMenuBtn() if(!menuBtn) return; // Add click listener to toggle sidebar menuBtn.addEventListener('click', function() { sidebar && sidebar.classList.toggle('shown'); if(ADHT.scrollbarWidth > 0) page.classList.toggle('noscroll'); }); })(); JS