More menu fixes. Reset states when switching between offcanvas and desktop. Do not fixHeights in toplevel when in desktop mode and touch screen.

This commit is contained in:
Djamil Legato
2015-04-22 15:51:45 -07:00
parent 2901175bd4
commit d2f33e79e0
2 changed files with 28 additions and 2 deletions
+14 -1
View File
@@ -142,7 +142,7 @@ var Menu = new prime({
if (sublevel) {
var isNavMenu = target.parent(selectors.mainContainer);
this._fixHeights(sublevel, slideout, isGoingBack, isNavMenu);
if (!isNavMenu || (isNavMenu && !sublevel.matches('.g-toplevel'))) { this._fixHeights(sublevel, slideout, isGoingBack, isNavMenu); }
if (!isNavMenu && columns && (blocks = columns.search('> .g-grid > .g-block'))) {
if (blocks.length > 1) { sublevel = blocks.search('> .g-sublevel'); }
}
@@ -197,6 +197,17 @@ var Menu = new prime({
this.toggleOverlay(topLevel);
},
resetStates: function(menu) {
if (!menu) { return; }
var items = menu.search('.g-toplevel, .g-dropdown-column, .g-dropdown, .g-selected, .g-active, .g-slide-out'),
actives = menu.search('.g-active');
if (!items) { return; }
menu.attribute('style', null).removeClass('g-selected').removeClass('g-slide-out');
items.attribute('style', null).removeClass('g-selected').removeClass('g-slide-out');
if (actives) { actives.removeClass('g-active').addClass('g-inactive'); }
},
toggleOverlay: function(menu) {
if (!menu) { return; }
var shouldOpen = !!menu.find('.g-active, .g-selected');
@@ -256,6 +267,8 @@ var Menu = new prime({
find = mobileContainer.find(selectors.topLevel);
if (find) { find.top(mainContainer); }
}
this.resetStates(find);
},
_debug: function() {}