glitch/js/demo.js

39 lines
1.1 KiB
JavaScript
Executable File

/**
* demo.js
* http://www.codrops.com
*
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*
* Copyright 2017, Codrops
* http://www.codrops.com
*/
{
setTimeout(() => document.body.classList.add('render'), 60);
const navdemos = Array.from(document.querySelectorAll('nav.demos > .demo'));
const total = navdemos.length;
const current = navdemos.findIndex(el => el.classList.contains('demo--current'));
const navigate = (linkEl) => {
document.body.classList.remove('render');
document.body.addEventListener('transitionend', () => window.location = linkEl.href);
};
navdemos.forEach(link => link.addEventListener('click', (ev) => {
ev.preventDefault();
navigate(ev.target);
}));
document.addEventListener('keydown', (ev) => {
const keyCode = ev.keyCode || ev.which;
let linkEl;
if ( keyCode === 37 ) {
linkEl = current > 0 ? navdemos[current-1] : navdemos[total-1];
}
else if ( keyCode === 39 ) {
linkEl = current < total-1 ? navdemos[current+1] : navdemos[0];
}
else {
return false;
}
navigate(linkEl);
});
}