├── Modal ├── .vscode │ └── settings.json ├── images │ ├── menu.svg │ ├── close.svg │ ├── success.svg │ └── illustration.svg ├── js │ └── modal.js ├── index.html └── estilos.css ├── Slider ├── .vscode │ └── settings.json ├── assets │ ├── picture1.jpg │ ├── picture2.jpg │ ├── picture3.jpg │ ├── leftarrow.svg │ └── rightarrow.svg ├── sliders.js ├── estilos.css └── index.html └── Menu desplegable ├── .vscode └── settings.json ├── assets ├── menu.svg └── arrow.svg ├── js └── app.js ├── index.html └── css └── estilos.css /Modal/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "liveServer.settings.port": 5501 3 | } -------------------------------------------------------------------------------- /Slider/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "liveServer.settings.port": 5501 3 | } -------------------------------------------------------------------------------- /Menu desplegable/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "liveServer.settings.port": 5501 3 | } -------------------------------------------------------------------------------- /Slider/assets/picture1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexCGDesign/3-proyectos-css/HEAD/Slider/assets/picture1.jpg -------------------------------------------------------------------------------- /Slider/assets/picture2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexCGDesign/3-proyectos-css/HEAD/Slider/assets/picture2.jpg -------------------------------------------------------------------------------- /Slider/assets/picture3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AlexCGDesign/3-proyectos-css/HEAD/Slider/assets/picture3.jpg -------------------------------------------------------------------------------- /Modal/images/menu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Menu desplegable/assets/menu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Menu desplegable/assets/arrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Slider/assets/leftarrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Slider/assets/rightarrow.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modal/images/close.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Modal/js/modal.js: -------------------------------------------------------------------------------- 1 | const closeModal = document.querySelector('.modal__close'); 2 | const openModal = document.querySelector('.hero__cta'); 3 | const modal = document.querySelector('.modal'); 4 | 5 | openModal.addEventListener('click', (e)=>{ 6 | e.preventDefault(); 7 | modal.classList.add('modal--show'); 8 | }); 9 | 10 | closeModal.addEventListener('click', (e)=>{ 11 | e.preventDefault(); 12 | modal.classList.remove('modal--show'); 13 | }); -------------------------------------------------------------------------------- /Slider/sliders.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | const sliders = [...document.querySelectorAll('.slider__body')]; 3 | const arrowNext = document.querySelector('#next'); 4 | const arrowBefore = document.querySelector('#before'); 5 | let value; 6 | 7 | arrowNext.addEventListener('click', ()=>changePosition(1)); 8 | 9 | arrowBefore.addEventListener('click', ()=>changePosition(-1)); 10 | 11 | function changePosition(change){ 12 | const currentElement = Number(document.querySelector('.slider__body--show').dataset.id); 13 | // 4+1 = 5 14 | value = currentElement; 15 | value+= change; 16 | 17 | console.log(sliders.length) 18 | if(value === 0 || value == sliders.length+1){ 19 | value = value === 0 ? sliders.length : 1; 20 | } 21 | 22 | sliders[currentElement-1].classList.toggle('slider__body--show'); 23 | sliders[value-1].classList.toggle('slider__body--show'); 24 | } 25 | })() -------------------------------------------------------------------------------- /Menu desplegable/js/app.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | const listElements = document.querySelectorAll('.menu__item--show'); 3 | const list = document.querySelector('.menu__links'); 4 | const menu = document.querySelector('.menu__hamburguer'); 5 | 6 | const addClick = ()=>{ 7 | listElements.forEach(element =>{ 8 | element.addEventListener('click', ()=>{ 9 | 10 | 11 | let subMenu = element.children[1]; 12 | let height = 0; 13 | element.classList.toggle('menu__item--active'); 14 | 15 | 16 | if(subMenu.clientHeight === 0){ 17 | height = subMenu.scrollHeight; 18 | } 19 | 20 | subMenu.style.height = `${height}px`; 21 | 22 | }); 23 | }); 24 | } 25 | 26 | const deleteStyleHeight = ()=>{ 27 | listElements.forEach(element=>{ 28 | 29 | if(element.children[1].getAttribute('style')){ 30 | element.children[1].removeAttribute('style'); 31 | element.classList.remove('menu__item--active'); 32 | } 33 | 34 | }); 35 | } 36 | 37 | 38 | window.addEventListener('resize', ()=>{ 39 | if(window.innerWidth > 800){ 40 | deleteStyleHeight(); 41 | if(list.classList.contains('menu__links--show')) 42 | list.classList.remove('menu__links--show'); 43 | 44 | }else{ 45 | addClick(); 46 | } 47 | }); 48 | 49 | if(window.innerWidth <= 800){ 50 | addClick(); 51 | } 52 | 53 | menu.addEventListener('click', ()=> list.classList.toggle('menu__links--show')); 54 | 55 | 56 | 57 | })(); 58 | 59 | -------------------------------------------------------------------------------- /Modal/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |Let me hep you grow your business with CSS Grid
31 | Join us! 32 |Lorem ipsum dolor sit amet consectetur adipisicing elit. Mollitia saepe minima excepturi in. Veniam voluptates sint suscipit cum, aliquam sapiente! Voluptas obcaecati atque aliquam veritatis.
47 | Cerrar modal 48 | 49 |