70 lines
2.3 KiB
JavaScript
70 lines
2.3 KiB
JavaScript
/**
|
|
* Pico's Default Theme - JavaScript helper
|
|
*
|
|
* Pico is a stupidly simple, blazing fast, flat file CMS.
|
|
*
|
|
* @author Daniel Rudolf
|
|
* @link http://picocms.org
|
|
* @license http://opensource.org/licenses/MIT The MIT License
|
|
* @version 1.1
|
|
*/
|
|
|
|
function main()
|
|
{
|
|
// capability CSS classes
|
|
document.documentElement.className = 'js';
|
|
|
|
// wrap tables
|
|
utils.forEach(document.querySelectorAll('main table'), function (_, table) {
|
|
if (!/\btable-responsive\b/.test(table.parentElement.className)) {
|
|
var tableWrapper = document.createElement('div');
|
|
tableWrapper.className = 'table-responsive';
|
|
|
|
table.parentElement.insertBefore(tableWrapper, table);
|
|
tableWrapper.appendChild(table);
|
|
}
|
|
});
|
|
|
|
// responsive menu
|
|
var menu = document.getElementById('page-menu'),
|
|
menuToggle = document.getElementById('page-menu-toggle'),
|
|
toggleMenuEvent = function (event) {
|
|
if (event.type === 'keydown') {
|
|
if ((event.keyCode != 13) && (event.keyCode != 32)) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
event.preventDefault();
|
|
|
|
if (menuToggle.getAttribute('aria-expanded') === 'false') {
|
|
menuToggle.setAttribute('aria-expanded', 'true');
|
|
utils.slideDown(menu, null, function () {
|
|
if (event.type === 'keydown') {
|
|
menu.focus();
|
|
}
|
|
});
|
|
} else {
|
|
menuToggle.setAttribute('aria-expanded', 'false');
|
|
utils.slideUp(menu);
|
|
}
|
|
},
|
|
onResizeEvent = function () {
|
|
if (utils.isElementVisible(menuToggle)) {
|
|
menu.className = 'hidden';
|
|
menuToggle.addEventListener('click', toggleMenuEvent);
|
|
menuToggle.addEventListener('keydown', toggleMenuEvent);
|
|
} else {
|
|
menu.className = '';
|
|
menu.removeAttribute('data-slide-id');
|
|
menuToggle.removeEventListener('click', toggleMenuEvent);
|
|
menuToggle.removeEventListener('keydown', toggleMenuEvent);
|
|
}
|
|
};
|
|
|
|
window.addEventListener('resize', onResizeEvent);
|
|
onResizeEvent();
|
|
}
|
|
|
|
main();
|