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.
134 lines
4.0 KiB
134 lines
4.0 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
|
|
toggleOpenX('.toggle', '.toggle__title', '.toggle__content', '.toggle__block-content', true);
|
|
// toggle
|
|
|
|
// checkbox
|
|
let checkbox = document.querySelectorAll('.checkbox');
|
|
|
|
checkbox.forEach(e => {
|
|
e.onclick = function (event) {
|
|
let input = e.querySelector('.checkbox__input');
|
|
|
|
if (!e.classList.contains('active')) {
|
|
input.checked = 1;
|
|
}else{
|
|
input.checked = 0;
|
|
}
|
|
e.classList.toggle('active');
|
|
}
|
|
})
|
|
// checkbox
|
|
|
|
// media
|
|
modalOpen('.button--filter', '.modal__filter');
|
|
modalClose('.modal__close');
|
|
// media
|
|
|
|
|
|
|
|
function modalOpen(buttonElement, contentElement){
|
|
let modal = document.querySelector('.modal'),
|
|
aside = document.querySelector('.modal__aside'),
|
|
elements = document.querySelectorAll(buttonElement);
|
|
|
|
elements.forEach(e => {
|
|
let thisContentElement = document.querySelector(contentElement);
|
|
|
|
e.onclick = function () {
|
|
modal.classList.add('active');
|
|
thisContentElement.classList.add('active');
|
|
|
|
let width = thisContentElement.clientWidth;
|
|
|
|
setTimeout(() => {
|
|
aside.style.width = `${width}px`;
|
|
}, 10);
|
|
}
|
|
})
|
|
}
|
|
|
|
function modalClose(buttonElement) {
|
|
let modal = document.querySelector('.modal'),
|
|
aside = document.querySelector('.modal__aside'),
|
|
asideItems = document.querySelectorAll('.modal__item'),
|
|
elements = document.querySelectorAll(buttonElement);
|
|
|
|
elements.forEach(e => {
|
|
e.onclick = function () {
|
|
modal.classList.remove('active');
|
|
aside.style.width = 0;
|
|
|
|
|
|
asideItems.forEach(e => {
|
|
if (e.classList.contains('active')) {
|
|
e.classList.remove('active');
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) {
|
|
let elements = document.querySelectorAll(mainElement);
|
|
|
|
elements.forEach(e => {
|
|
let thisMainElement = e,
|
|
thisButtonElement = e.querySelector(buttonElement),
|
|
thisHeightElement = e.querySelector(heightElement),
|
|
thisContentElement = e.querySelector(contentElement);
|
|
|
|
thisButtonElement.onclick = function (e) {
|
|
let height = thisHeightElement.clientHeight;
|
|
|
|
if (close == true && !thisMainElement.classList.contains('active')) {
|
|
elements.forEach(e => {
|
|
if (e.classList.contains('active')) {
|
|
e.classList.remove('active');
|
|
e.querySelector(contentElement).style.height = null
|
|
}
|
|
})
|
|
}
|
|
|
|
if (!thisMainElement.classList.contains('active')) {
|
|
thisContentElement.style.height = `${height}px`;
|
|
thisMainElement.classList.add('active');
|
|
}else{
|
|
thisContentElement.style.height = null;
|
|
thisMainElement.classList.remove('active');
|
|
}
|
|
}
|
|
|
|
});
|
|
} |