сделал анимацию aside

cosmopet--Memento-mori-dev
Kirill Pet 10 months ago
parent 46df883cfd
commit 284a32c6c9
  1. 16
      assets/css/gp-style-core.css
  2. 62
      assets/js/gp-main.js
  3. 14
      index.html

@ -801,6 +801,8 @@ button{
opacity: 0; opacity: 0;
transition: opacity .2s ease-out; transition: opacity .2s ease-out;
pointer-events: none; pointer-events: none;
white-space: nowrap;
} }
.modal.active{ .modal.active{
opacity: 1; opacity: 1;
@ -827,6 +829,9 @@ button{
position: relative; position: relative;
display: none; display: none;
filter: blur(10px);
transition: filter .2s ease-out;
} }
.modal__item.active{ .modal__item.active{
display: flex; display: flex;
@ -1125,3 +1130,14 @@ button{
color: var(--text-dark); color: var(--text-dark);
} }
/* radio */ /* radio */
@keyframes slidein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}

@ -1,38 +1,9 @@
'use strict'; 'use strict';
// function toggleOpenX(button, content, blockheight) { // header
// let thisButton = document.querySelector(button),
// thisContent = document.querySelector(content),
// thisBlockheight = document.querySelector(blockheight);
// thisButton.onclick = function () { // header
// 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 // checkbox
let checkbox = document.querySelectorAll('.checkbox'); let checkbox = document.querySelectorAll('.checkbox');
@ -53,15 +24,20 @@ checkbox.forEach(e => {
// media // media
modalOpen('.button--filter', '.modal__filter'); modalOpen('.button--filter', '.modal__filter');
modalOpen('.basket-open', '.modal__basket');
modalClose('.modal__close'); modalClose('.modal__close');
// media // media
// toggle
toggleOpenX('.toggle', '.toggle__title', '.toggle__content', '.toggle__block-content', true);
// toggle
function modalOpen(buttonElement, contentElement){ function modalOpen(buttonElement, contentElement){
let modal = document.querySelector('.modal'), let modal = document.querySelector('.modal'),
aside = document.querySelector('.modal__aside'), aside = document.querySelector('.modal__aside'),
elements = document.querySelectorAll(buttonElement); elements = document.querySelectorAll(buttonElement),
device = window.screen.width;
elements.forEach(e => { elements.forEach(e => {
let thisContentElement = document.querySelector(contentElement); let thisContentElement = document.querySelector(contentElement);
@ -73,7 +49,15 @@ function modalOpen(buttonElement, contentElement){
let width = thisContentElement.clientWidth; let width = thisContentElement.clientWidth;
setTimeout(() => { setTimeout(() => {
if (device <= 576) {
aside.style.width = `${device}px`;
thisContentElement.style.opacity = 1;
thisContentElement.style.filter = 'blur(0px)';
}else{
aside.style.width = `${width}px`; aside.style.width = `${width}px`;
thisContentElement.style.opacity = 1;
thisContentElement.style.filter = 'blur(0px)';
}
}, 10); }, 10);
} }
}) })
@ -87,15 +71,23 @@ function modalClose(buttonElement) {
elements.forEach(e => { elements.forEach(e => {
e.onclick = function () { e.onclick = function () {
modal.classList.remove('active'); aside.style.width = '0px';
aside.style.width = 0;
asideItems.forEach(e => {
if (e.classList.contains('active')) {
e.style.filter = 'blur(10px)';
}
});
setTimeout(() => {
asideItems.forEach(e => { asideItems.forEach(e => {
if (e.classList.contains('active')) { if (e.classList.contains('active')) {
e.classList.remove('active'); e.classList.remove('active');
} }
}) });
modal.classList.remove('active');
}, 300);
} }
}) })
} }

@ -115,7 +115,7 @@
</a> </a>
</div> </div>
<div class="mini-profile__item"> <div class="mini-profile__item">
<button class="mini-profile__button"> <button class="mini-profile__button basket-open">
<img src="assets/img/svg/mini-profile/basket.svg" alt="" class="mini-profile__icon"> <img src="assets/img/svg/mini-profile/basket.svg" alt="" class="mini-profile__icon">
</button> </button>
</div> </div>
@ -490,9 +490,9 @@
</div> </div>
</main> </main>
<div class="modal" style="display: none;"> <div class="modal">
<aside class="modal__aside"> <aside class="modal__aside">
<div class="modal__item modal__filter" style="display: none;"> <div class="modal__item modal__filter">
<button class="modal__close"> <button class="modal__close">
<img src="assets/img/svg/main/black-x.svg" alt=""> <img src="assets/img/svg/main/black-x.svg" alt="">
</button> </button>
@ -500,7 +500,7 @@
<div class="modal__header"> <div class="modal__header">
<p class="modal__title">Фильтры</p> <p class="modal__title">Фильтры</p>
<div class="modal__content"> <div class="modal__content">
<div class="toggle active"> <div class="toggle">
<p class="toggle__title"> <p class="toggle__title">
ДЛЯ КОГО ДЛЯ КОГО
</p> </p>
@ -525,7 +525,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="toggle active"> <div class="toggle">
<p class="toggle__title"> <p class="toggle__title">
ТИП ПРОДУКЦИИ ТИП ПРОДУКЦИИ
</p> </p>
@ -557,7 +557,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="toggle active"> <div class="toggle">
<p class="toggle__title"> <p class="toggle__title">
ВКУС ВКУС
</p> </p>
@ -613,7 +613,7 @@
</div> </div>
</div> </div>
<div class="modal__item modal__basket" style="display: none;"> <div class="modal__item modal__basket">
<button class="modal__close"> <button class="modal__close">
<img src="assets/img/svg/main/black-x.svg" alt=""> <img src="assets/img/svg/main/black-x.svg" alt="">
</button> </button>

Loading…
Cancel
Save