js modal
This commit is contained in:
@@ -19,38 +19,7 @@
|
||||
// }
|
||||
|
||||
|
||||
function toggleOpenX(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);
|
||||
|
||||
thisButtonElement.onclick = function (e) {
|
||||
let width = thisWidthElement.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 = `${width}px`;
|
||||
thisMainElement.classList.add('active');
|
||||
}else{
|
||||
thisContentElement.style.height = null;
|
||||
thisMainElement.classList.remove('active');
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
// header start
|
||||
// toggleOpenX('#pc-menu','.header__menu-block','.header__pc-menu');
|
||||
@@ -80,4 +49,86 @@ checkbox.forEach(e => {
|
||||
e.classList.toggle('active');
|
||||
}
|
||||
})
|
||||
// checkbox
|
||||
// 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');
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user