improved top bar for small devices
This commit is contained in:
1 parent
a158a9e323
commit
d7ce36f1bc
2 files changed
+108
-27
No files matched your search
@@ -142,7 +142,6 @@ define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer', 'ar
|
|||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
mainPageBottom.view = function(){
|
mainPageBottom.view = function(){
|
||||||
return m('div.uk-margin-top.uk-margin-bottom.uk-grid',
|
return m('div.uk-margin-top.uk-margin-bottom.uk-grid',
|
||||||
m('div.uk-width-large-3-5.uk-width-medium-4-5.uk-width-small-1-1.uk-container-center', [
|
m('div.uk-width-large-3-5.uk-width-medium-4-5.uk-width-small-1-1.uk-container-center', [
|
||||||
@@ -151,17 +150,16 @@ define(['m', '_', 'util', 'resultParser', 'views/topNavBar', 'views/footer', 'ar
|
|||||||
mainPageBottom.smallSizeView()
|
mainPageBottom.smallSizeView()
|
||||||
])
|
])
|
||||||
);
|
);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var mainPage = {};
|
var mainPage = {};
|
||||||
|
|
||||||
mainPage.view = function(){
|
mainPage.view = function(){
|
||||||
return [
|
return [
|
||||||
topNavBar.view(),
|
m.component(topNavBar),
|
||||||
mainPageLogo.view(),
|
m.component(mainPageLogo),
|
||||||
mainPageBottom.view(),
|
m.component(mainPageBottom),
|
||||||
footer.view()
|
m.component(footer)
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+104
-21
@@ -1,18 +1,20 @@
|
|||||||
define(['m', '_', 'util'], function (m, _, util) {
|
define(['m', '_', 'util'], function (m, _, util) {
|
||||||
|
|
||||||
var topNavBar = {};
|
var topNavBar = {};
|
||||||
|
|
||||||
topNavBar._urlMapping = {
|
topNavBar._urlMapping = [
|
||||||
'': 'Accueil',
|
{name: 'Accueil', path: '', fa: 'fa-home'},
|
||||||
nouvelles: 'Nouvelles',
|
{name: 'Nouvelles', path: 'nouvelles', fa: 'fa-newspaper-o'},
|
||||||
calendrier: 'Calendrier',
|
{name: 'Calendrier', path: 'calendrier', fa: 'fa-calendar'},
|
||||||
reglement: 'Règlement',
|
{name: 'Règlement', path: 'reglement', fa: 'fa-legal'},
|
||||||
// photos: 'Photos',
|
{name: 'Membre', path: 'membre', fa: 'fa-lock'},
|
||||||
membre: 'Membre',
|
{name: 'Nous Joindre', path: 'contact', fa: 'fa-phone'}
|
||||||
contact: 'Nous Joindre'
|
];
|
||||||
};
|
|
||||||
|
|
||||||
topNavBar.controller = function(){
|
topNavBar.controller = function(){
|
||||||
return {id: m.route.param("page")};
|
var model = {};
|
||||||
|
model.openDropdown = false;
|
||||||
|
return model;
|
||||||
};
|
};
|
||||||
|
|
||||||
topNavBar._getUrlForId = function(id_){
|
topNavBar._getUrlForId = function(id_){
|
||||||
@@ -22,21 +24,102 @@ define(['m', '_', 'util'], function (m, _, util) {
|
|||||||
topNavBar._isActive = function(id_){
|
topNavBar._isActive = function(id_){
|
||||||
return topNavBar._getUrlForId(id_) == window.location.hash;
|
return topNavBar._getUrlForId(id_) == window.location.hash;
|
||||||
};
|
};
|
||||||
|
topNavBar._getItemIcon = function(item){
|
||||||
topNavBar._getItem = function(name, id){
|
return m('i.fa.' + item.fa);
|
||||||
var class_ = topNavBar._isActive(id) ? 'uk-active' : 'uk-parent';
|
|
||||||
var url = topNavBar._getUrlForId(id);
|
|
||||||
return m("li", {class: class_}, [m("a",{href: url}, name)]);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
topNavBar.view = function(controller){
|
topNavBar._getLargeItem = function(item){
|
||||||
return m("nav.uk-navbar.uk-navbar-attached",[
|
var class_ = topNavBar._isActive(item.path) ? 'uk-active' : '';
|
||||||
m("ul.uk-navbar-nav.uk-navbar-center.uk-visible-large",
|
var url = topNavBar._getUrlForId(item.path);
|
||||||
|
return m("li", {class: class_},
|
||||||
|
m("a.uk-navbar-nav-subtitle", {href: url},
|
||||||
|
topNavBar._getItemIcon(item),
|
||||||
|
m('div', item.name)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
topNavBar._getMediumItem = function(item){
|
||||||
|
var class_ = topNavBar._isActive(item.path) ? 'uk-active' : '';
|
||||||
|
var url = topNavBar._getUrlForId(item.path);
|
||||||
|
return m("li", {class: class_},
|
||||||
|
m("a", {href: url},
|
||||||
|
topNavBar._getItemIcon(item), ' ', item.name
|
||||||
|
)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
topNavBar._getSmallItem = function(item){
|
||||||
|
var class_ = topNavBar._isActive(item.path) ? 'uk-active' : '';
|
||||||
|
var url = topNavBar._getUrlForId(item.path);
|
||||||
|
return m("li", {class: class_},
|
||||||
|
topNavBar._getItemIcon(item), ' ',
|
||||||
|
m("a", {href: url},
|
||||||
|
item.name
|
||||||
|
)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
topNavBar.largeTopNav = function(){
|
||||||
|
return [
|
||||||
m('li.uk-parent', m('div.uk-navbar-brand', util.facebookLink())),
|
m('li.uk-parent', m('div.uk-navbar-brand', util.facebookLink())),
|
||||||
_.map(topNavBar._urlMapping, topNavBar._getItem)),
|
_.map(topNavBar._urlMapping, topNavBar._getLargeItem)
|
||||||
m("ul.uk-navbar-nav.uk-hidden-large",
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
topNavBar.mediumTopNav = function(){
|
||||||
|
return [
|
||||||
m('li.uk-parent', util.facebookLink()),
|
m('li.uk-parent', util.facebookLink()),
|
||||||
_.map(topNavBar._urlMapping, topNavBar._getItem)),
|
_.map(topNavBar._urlMapping, topNavBar._getMediumItem)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
topNavBar.dropdown = function(){
|
||||||
|
return m('div.uk-dropdown.uk-dropdown-navbar.uk-dropdown-bottom',
|
||||||
|
m('ul.uk-nav.uk-nav-navbar'),
|
||||||
|
_.map(topNavBar._urlMapping, topNavBar._getSmallItem)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
topNavBar.toggleDropdown = function(model){
|
||||||
|
return function(){
|
||||||
|
model.openDropdown = !model.openDropdown;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
topNavBar.clickElsewhere = function(model){
|
||||||
|
var style = {
|
||||||
|
position: 'fixed',
|
||||||
|
top: '0px',
|
||||||
|
bottom: '0px',
|
||||||
|
left: '0px',
|
||||||
|
right: '0px',
|
||||||
|
background: 'black',
|
||||||
|
opacity: 0.5,
|
||||||
|
'z-index': 2
|
||||||
|
};
|
||||||
|
var attrs = {style: style, onclick: topNavBar.toggleDropdown(model)};
|
||||||
|
return m('div', attrs);
|
||||||
|
};
|
||||||
|
|
||||||
|
topNavBar.smallTopNav = function(model){
|
||||||
|
var class_ = model.openDropdown ? 'uk-open' : '';
|
||||||
|
var attrs = {class: class_, onclick: topNavBar.toggleDropdown(model)};
|
||||||
|
var ret = [
|
||||||
|
m('li.uk-parent', util.facebookLink()),
|
||||||
|
m('li.uk-parent', attrs, m('a', m('i.fa.fa-bars')), topNavBar.dropdown()),
|
||||||
|
];
|
||||||
|
if(model.openDropdown){
|
||||||
|
ret.push(topNavBar.clickElsewhere(model));
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
|
||||||
|
topNavBar.view = function(model){
|
||||||
|
return m("nav.uk-navbar.uk-navbar-attached", [
|
||||||
|
m("ul.uk-navbar-nav.uk-visible-large.uk-navbar-content.uk-navbar-center", topNavBar.largeTopNav()),
|
||||||
|
m("ul.uk-navbar-nav.uk-visible-medium", topNavBar.mediumTopNav()),
|
||||||
|
m("ul.uk-navbar-nav.uk-visible-small", topNavBar.smallTopNav(model)),
|
||||||
]);
|
]);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user