You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
template-for-verstka/assets/js/gp-main.js

65 lines
1.9 KiB

'use strict';
function toggleOpenX(button, content, blockheight) {
let thisButton = document.querySelector(button),
thisContent = document.querySelector(content),
thisBlockheight = document.querySelector(blockheight);
thisButton.onclick = function () {
let height = thisBlockheight.clientHeight;
if (!thisContent.classList .contains('open')) {
thisContent.style.height = `${height}px`;
thisContent.classList .add('open');
}else{
thisContent.style.height = null;
thisContent.classList .remove('open');
}
}
}
// header start
toggleOpenX('#pc-menu','.header__menu-block','.header__pc-menu');
toggleOpenX('#phone-menu','.header__menu-block','.header__phone-menu');
// header end
// lang start
toggleOpenX('.lang__open','.lang__content','.lang__list');
// lang end
// toggle
let toggles = document.querySelectorAll('.toggle');
function open(mainElement, buttonElement ,widthElement, contentElement, close) {
let elements = document.querySelectorAll(mainElement);
elements.forEach(e => {
let thisMainElement = e,
thisButtonElement = e.querySelector(buttonElement),
thisWidthElement = e.querySelector(widthElement),
thisContentElement = e.querySelector(contentElement);
if (close == true) {
console.log(1);
}
thisButtonElement.onclick = function (e) {
let width = thisWidthElement.clientHeight;
if (!thisMainElement.classList.contains('active')) {
thisContentElement.style.height = `${width}px`;
thisMainElement.classList.add('active');
}else{
thisContentElement.style.height = null;
thisMainElement.classList.remove('active');
}
}
});
}
open('.toggle', '.toggle__title', '.toggle__content', '.toggle__block-content', true);