first commit
This commit is contained in:
59
public/js/modules/topsearch.js
Normal file
59
public/js/modules/topsearch.js
Normal file
@@ -0,0 +1,59 @@
|
||||
CNVS.TopSearch = function() {
|
||||
var __core = SEMICOLON.Core;
|
||||
|
||||
return {
|
||||
init: function(selector) {
|
||||
selector = __core.getSelector( selector, false );
|
||||
if( selector.length < 1 ){
|
||||
return true;
|
||||
}
|
||||
|
||||
var searchForm = document.querySelector('.top-search-form');
|
||||
|
||||
if( !searchForm ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
searchForm.closest('.header-row')?.classList.add( 'top-search-parent' );
|
||||
|
||||
var topSearchParent = document.querySelector('.top-search-parent'),
|
||||
timeout;
|
||||
|
||||
selector[0].onclick = function(e) {
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
|
||||
clearTimeout( timeout );
|
||||
|
||||
__core.getVars.elBody.classList.toggle('top-search-open');
|
||||
document.getElementById('top-cart')?.classList.remove('top-cart-open');
|
||||
|
||||
__core.getVars.recalls.menureset();
|
||||
|
||||
if( __core.getVars.elBody.classList.contains('top-search-open') ) {
|
||||
topSearchParent?.classList.add('position-relative');
|
||||
} else {
|
||||
timeout = setTimeout( function() {
|
||||
topSearchParent?.classList.remove('position-relative');
|
||||
}, 500);
|
||||
}
|
||||
|
||||
__core.getVars.elBody.classList.remove("primary-menu-open");
|
||||
__core.getVars.elPageMenu && __core.getVars.elPageMenu.classList.remove('page-menu-open');
|
||||
|
||||
if (__core.getVars.elBody.classList.contains('top-search-open')){
|
||||
searchForm.querySelector('input').focus();
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener( 'click', function(e) {
|
||||
if (!e.target.closest('.top-search-form')) {
|
||||
__core.getVars.elBody.classList.remove('top-search-open');
|
||||
timeout = setTimeout( function() {
|
||||
topSearchParent?.classList.remove('position-relative');
|
||||
}, 500);
|
||||
}
|
||||
}, false);
|
||||
}
|
||||
};
|
||||
}();
|
||||
Reference in New Issue
Block a user