Merge branch 'master' of github.com:psychobunny/node-forum
commit
bffa8828df
@ -0,0 +1,81 @@
|
||||
define(function() {
|
||||
var mobileMenu = {};
|
||||
|
||||
|
||||
var categories = null,
|
||||
overlay = null,
|
||||
menuBtn = null;
|
||||
|
||||
|
||||
function loadCategories(callback) {
|
||||
if (categories) {
|
||||
displayCategories();
|
||||
return;
|
||||
}
|
||||
|
||||
jQuery.getJSON('/api/home', function(data) {
|
||||
categories = data.categories;
|
||||
displayCategories();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function displayCategories() {
|
||||
var baseIcon = document.createElement('a'),
|
||||
baseImage = document.createElement('i'),
|
||||
baseName = document.createElement('span');
|
||||
|
||||
baseIcon.className = 'mobile-menu-icon';
|
||||
|
||||
for (var i=0, ii=categories.length; i<ii; i++) {
|
||||
var icon = baseIcon.cloneNode(true),
|
||||
image = baseImage.cloneNode(true),
|
||||
name = baseName.cloneNode(true);
|
||||
|
||||
var category = categories[i];
|
||||
|
||||
image.className = category.icon + ' icon-3x';
|
||||
name.innerHTML = '<br />' + category.name;
|
||||
icon.appendChild(image);
|
||||
icon.appendChild(name);
|
||||
icon.src = 'category/' + category.slug;
|
||||
|
||||
icon.onclick = function() {
|
||||
jQuery('.mobile-menu-icon').toggleClass('menu-visible');
|
||||
|
||||
setTimeout(function() {
|
||||
jQuery(overlay).toggleClass('menu-visible');
|
||||
}, 200);
|
||||
|
||||
ajaxify.go(this.src);
|
||||
}
|
||||
|
||||
overlay.appendChild(icon);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function animateIcons() {
|
||||
jQuery(overlay).toggleClass('menu-visible');
|
||||
setTimeout(function() {
|
||||
jQuery('.mobile-menu-icon').toggleClass('menu-visible');
|
||||
}, 100);
|
||||
}
|
||||
|
||||
|
||||
mobileMenu.init = function() {
|
||||
overlay = overlay || document.getElementById('mobile-menu-overlay');
|
||||
menuBtn = menuBtn || document.getElementById('mobile-menu-btn');
|
||||
|
||||
menuBtn.onclick = function() {
|
||||
animateIcons();
|
||||
}
|
||||
|
||||
|
||||
loadCategories(displayCategories);
|
||||
}
|
||||
|
||||
return {
|
||||
init: mobileMenu.init
|
||||
}
|
||||
});
|
Loading…
Reference in New Issue