diff --git a/components/navbar.html b/components/navbar.html index a225277..7316d8e 100644 --- a/components/navbar.html +++ b/components/navbar.html @@ -1,5 +1,15 @@ + + + + + + + + + + Votre Avocat diff --git a/css/navbar.css b/css/navbar.css index 73f85ba..14004bc 100644 --- a/css/navbar.css +++ b/css/navbar.css @@ -2,19 +2,6 @@ padding: 2.5rem; } -#navbar_component { - align-items: center; - display: flex; - height: 5rem; - padding: 0 5rem; - position: fixed; - top: 0; - width: 100%; - background-color: var(--color-light); - z-index: 3; - overflow: initial; -} - #navbar_logo-container { height: 5rem; width: 5rem; @@ -27,16 +14,126 @@ height: 5rem; } -#navbar_text-container { - font-family: 'Josefin Sans', sans-serif; - position: fixed; +@media screen and (min-width: 800px) { + #navbar_component { + align-items: center; + display: flex; + height: 5rem; + padding: 0 5rem; + position: fixed; + top: 0; + width: 100%; + background-color: var(--color-light); + z-index: 3; + overflow: initial; + } + + #navbar_text-container { + font-family: 'Josefin Sans', sans-serif; + position: fixed; + display: block; + } + + #navbar_text-container li { + border-radius: 4px; + display: inline-block; + padding: 1rem 0; + transition: all .3s ease 0s; + } + + #navbar_menu { + display: none; + } + + .navbar_dropdown { + align-items: center; + background-color: rgba(255, 255, 255, 0.75); + top: 5rem; + backdrop-filter: blur(16px); + border-radius: .25rem; + box-shadow: 0 8px 16px rgba(136, 93, 12, 0.15); + flex-direction: column; + float: none; + justify-content: center; + position: absolute; + width: 15rem; + overflow: initial; + display: none; + z-index: 10; + } + + .navbar_menu-close{ + display: none; + } } -#navbar_text-container li { - border-radius: 4px; - display: inline-block; - padding: 1rem 0; - transition: all .3s ease 0s; +@media screen and (max-width: 800px) { + #navbar_component { + align-items: center; + display: flex; + height: 5rem; + padding: 0 2.5rem; + position: fixed; + top: 0; + width: 100%; + background-color: var(--color-light); + z-index: 11; + overflow: initial; + } + + #navbar_text-container { + font-family: 'Josefin Sans', sans-serif; + position: fixed; + left: 0; + top: 0; + background-color: var(--color-white); + box-shadow: rgba(0, 0, 0, 0.25) 0px 54px 55px, rgba(0, 0, 0, 0.12) 0px -12px 30px, rgba(0, 0, 0, 0.12) 0px 4px 6px, rgba(0, 0, 0, 0.17) 0px 12px 13px, rgba(0, 0, 0, 0.09) 0px -3px 5px; + z-index: 100; + padding-left: 1.5rem; + padding-right: 0.25rem; + height: 100%; + display: none; + } + + #navbar_text-container li { + border-radius: 4px; + display: flex; + flex-direction: column; + transition: all .3s ease 0s; + } + + #navbar_menu svg{ + font-size: 50px; + color: var(--color-dark); + transition: all .3s ease 0s; + } + + #navbar_menu svg:hover{ + color: var(--color-white); + } + + .navbar_menu-close svg{ + font-size: 50px; + color: var(--color-dark); + transition: all .3s ease 0s; + } + + .navbar_dropdown { + align-items: center; + background-color: rgba(255, 255, 255, 0.75); + left: 14rem; + backdrop-filter: blur(16px); + border-radius: .25rem; + box-shadow: 0 8px 16px rgba(136, 93, 12, 0.15); + flex-direction: column; + float: none; + justify-content: center; + position: absolute; + width: 15rem; + overflow: initial; + display: none; + z-index: 11; + } } #navbar_text-container a, @@ -58,23 +155,6 @@ button { box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px; } -.navbar_dropdown { - align-items: center; - background-color: rgba(255, 255, 255, 0.75); - top: 5rem; - backdrop-filter: blur(16px); - border-radius: .25rem; - box-shadow: 0 8px 16px rgba(136, 93, 12, 0.15); - flex-direction: column; - float: none; - justify-content: center; - position: absolute; - width: 15rem; - overflow: initial; - display: none; - z-index: 10; -} - .navbar_dropdown a { border-radius: 0 !important; width: 100%; diff --git a/index.html b/index.html index 72c057f..906a98a 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,7 @@ + diff --git a/js/import.js b/js/import.js new file mode 100644 index 0000000..c8d2101 --- /dev/null +++ b/js/import.js @@ -0,0 +1 @@ +import { mdiAccount } from '@mdi/js'; \ No newline at end of file diff --git a/js/navbar.js b/js/navbar.js index 05b4835..bfa7a24 100644 --- a/js/navbar.js +++ b/js/navbar.js @@ -2,16 +2,18 @@ /* global variables */ /****************************************/ +//When window width >800 set to true +var mobileMode = false //enterAnimation is a status linked to mouseenter/leave of the icon var enterAnimation = false; //each tag of the navbar_text-container -var dropdownList = document.getElementById("navbar_text-container").children[0].children; +var dropdownList = document.getElementById("navbar_text-container").children[1].children; //each tag in the navbar var aTagList = getNavbarTextContainer(); //a list var dropdownStatus = Array(aTagList.length).fill(false); //list of dropdown links -var dropdownLinks = ["droits/penal.html","droits/affaire.html","join/contact.html","join/coordonees.html"]; +var dropdownLinks = ["droits/penal.html", "droits/affaire.html", "join/contact.html", "join/coordonees.html"]; //list of container links var containerLinks = ["avocat"]; //navbarDropdown Element @@ -62,9 +64,8 @@ function setDropdown(display, element) { */ function getNavbarTextContainer() { var returnAtag = []; - var container = document.getElementById("navbar_text-container"); //For each a tag we found in the text container, push the element to the return array - for (var aTag of container.children[0].children) { + for (var aTag of dropdownList) { returnAtag.push(aTag.children[0]) } return returnAtag; @@ -80,41 +81,44 @@ function resetNavbar() { } } +function openMenu() { + document.getElementById("navbar_text-container").style.display = "block"; +} + +function closeMenu() { + document.getElementById("navbar_text-container").style.display = "none"; +} + /****************************************/ /* main */ /****************************************/ //Setting the logo URL -document.getElementsByClassName("navbar_logo")[0].src = urlStr+"/assets/Logo.png"; +document.getElementsByClassName("navbar_logo")[0].src = urlStr + "/assets/Logo.png"; //Setting the logo href document.getElementById("navbar_logo-home").href = urlStr; //Setting the href links for in directory links var urlOffset = urlStr.length //if dir found, we apply the dir offset + '/' (1 char) -if(dirStr.length > 1) -{ +if (dirStr.length > 1) { urlOffset = urlOffset + dirStr.length + 1; } //dor evry dropdown of the navbar we check each -for(var dropdown of navbarDropdown) -{ - for(var aTagDropdown of dropdown.children) - { +for (var dropdown of navbarDropdown) { + for (var aTagDropdown of dropdown.children) { //We slice the href with the url and the directory offset - var pathStr = aTagDropdown.href.slice(urlOffset,aTagDropdown.href.length); + var pathStr = aTagDropdown.href.slice(urlOffset, aTagDropdown.href.length); //We then put again the url and the path we want - aTagDropdown.href = urlStr+pathStr; + aTagDropdown.href = urlStr + pathStr; } } //We do the same but with aTag replacing aTagDropdown, each of the aTagList -for(var aTag of aTagList) -{ +for (var aTag of aTagList) { //only aTag that are not blank (=#0) are affected - if(!(aTag.href.includes("#0"))) - { - var pathStr = aTag.href.slice(urlOffset,aTag.href.length); - aTag.href = urlStr+pathStr; + if (!(aTag.href.includes("#0"))) { + var pathStr = aTag.href.slice(urlOffset, aTag.href.length); + aTag.href = urlStr + pathStr; } } @@ -146,13 +150,12 @@ document.getElementById("navbar_logo-container").addEventListener("mouseleave", for (var dropdownElement of dropdownList) { var dropdownLink = dropdownElement.children[0]; dropdownLink.addEventListener("click", function (e) { - if (e.target.parentNode.children.length > 1) - { + if (e.target.parentNode.children.length > 1) { var styleDropdown = e.target.parentNode.children[1].style.display; //We reset all navbar resetNavbar(); //If the dropdown was hidden, show the item - if(!(styleDropdown == "block")) { + if (!(styleDropdown == "block")) { //we get the parent node of the tag var dropdownLink = e.target.parentNode; setDropdown("block", dropdownLink); @@ -175,4 +178,18 @@ window.addEventListener('click', function (e) { if (!clickState) { resetNavbar(); } +}); + +//When changing the window size +window.addEventListener('resize', function (e) { + if((window.innerWidth > 800) && mobileMode) + { + openMenu(); + mobileMode = false; + } + if((window.innerWidth < 800) && !mobileMode) + { + closeMenu(); + mobileMode = true; + } }); \ No newline at end of file