/**
* Menu
*/
class Menu {
/**
*
* @param {*} container_selector
* @param {*} button_selector
*/
constructor( container_selector = '.menu-panel', button_selector = '#hamburger' ){
this.container = document.querySelector(container_selector);
this.button = document.querySelector(button_selector);
this.isopen = false;
this.toggle= this.toggle.bind(this);
this.button.addEventListener( 'click', evt => { this.toggle() });
}
open() {
this.container.classList.add('open');
this.button.classList.add('isOpen');
document.body.classList.add('noscroll');
this.isopen = true;
};
close() {
this.container.classList.remove('open');
this.button.classList.remove('isOpen');
document.body.classList.remove('noscroll');
this.isopen = false;
};
toggle() {
this.isopen = !this.isopen;
if( this.isopen )
this.open();
else
this.close();
};
}
class SearchButton {
/**
*
* @param {*} container_selector
* @param {*} button_selector
*/
constructor( container_selector = '.search-panel', button_selector = '.open-search' ){
this.container = document.querySelector(container_selector);
this.button = document.querySelector(button_selector);
this.isopen = false;
this.toggle= this.toggle.bind(this);
this.button.addEventListener( 'click', evt => { this.toggle() });
}
open() {
this.container.classList.add('open');
this.button.innerHTML = ''
document.body.classList.add('noscroll');
this.isopen = true;
};
close() {
this.container.classList.remove('open');
this.button.innerHTML = ''
document.body.classList.remove('noscroll');
this.isopen = false;
};
toggle() {
this.isopen = !this.isopen;
if( this.isopen )
this.open();
else
this.close();
};
}
class TrendBar {
/**
*
* @param {*} container_selector
*/
constructor( container_selector = '.category-menu' ){
this.container = document.querySelector(container_selector);
}
open() { this.container.classList.remove('hidden'); };
close() { this.container.classList.add('hidden'); };
}
class BarManager {
constructor() {
this.menu = new Menu();
this.search = new SearchPanel('.search-panel');
this.searchbtn = new SearchButton();
this.trend = new TrendBar();
this.menu.button.addEventListener('click', evt => {
this.search.close();
this.searchbtn.close();
if( this.menu.isopen )
this.trend.close();
else
this.trend.open();
});
this.search.button.addEventListener('click', evt => this.menu.close() );
}
}
let blz_bar_mgr = new BarManager();