UNPKG

smdm-slide-menu

Version:

A library agnostic multilevel page menu with a smooth slide effect based on CSS transitions, focused on accessibility.

53 lines (44 loc) 1.69 kB
function logEvent(id, event) { const time = parseInt(event.timeStamp); console.log(id + ': ' + time + ' - ' + event.type); } const config = () => { console.log('SlideMenu is ready!'); const menuLeftElem = document.getElementById('test-menu-left'); const allEvents = [ 'sm.back', 'sm.back-after', 'sm.close', 'sm.close-after', 'sm.forward', 'sm.forward-after', 'sm.navigate', 'sm.navigate-after', 'sm.navigateTo', 'sm.navigateTo-after', 'sm.open', 'sm.open-after', 'sm.init', ]; allEvents.forEach((eventName) => { menuLeftElem.addEventListener(eventName, (event) => logEvent('Menu left', event)); }); const arrowHtml = (styles = '') => `<svg style="${styles}" enable-background="new 0 0 32 32" height="24px" version="1.1" viewBox="0 0 32 32" width="24px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path fill="#ffffff" clip-rule="evenodd" d="M21.698,15.286l-9.002-8.999 c-0.395-0.394-1.035-0.394-1.431,0c-0.395,0.394-0.395,1.034,0,1.428L19.553,16l-8.287,8.285c-0.395,0.394-0.395,1.034,0,1.429 c0.395,0.394,1.036,0.394,1.431,0l9.002-8.999C22.088,16.325,22.088,15.675,21.698,15.286z" fill-rule="evenodd"/><g/><g/><g/><g/><g/><g/></svg>`; const menuLeft = new SlideMenu(menuLeftElem, { position: 'left', navigationButtons: arrowHtml(), backLinkBefore: arrowHtml('transform: rotate(180deg)'), keyClose: 'Escape', showBackLink: false, closeOnClickOutside: true, }); if (window.innerWidth > 767) { menuLeft.open(false); } }; if (window.SlideMenu) { config(); } else { window.addEventListener('sm.ready', config); }