I am trying to build a background animation for the menu items of my website. It mostly works as I want but I'm not able to get the javascript to work. The folders are all in the same directory and the code is as follows:
const menu = document.getElementById("menu");
Array.from(document.getElementsByClassName("menu-item"))
.forEach((item, index) => {
item.onmouseover = () => {
menu.dataset.activeIndex = index;
}
});
body {
background-color: rgb(20, 20, 20);
margin: 0px;
}
#menu {
height: 100vh;
display: flex;
align-items: center;
}
.menu-item {
color: aliceblue;
font-size: clamp(3rem, 8vw, 8rem);
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
display: block;
text-decoration: none;
padding: clamp(0.25rem, 0.5vw, 1rem) 0rem;
transition: opacity 400ms ease-in;
}
#menu-items {
margin-left: clamp(4rem, 20vw, 48rem);
position: relative;
z-index: 2;
}
#menu-items:hover>.menu-item {
opacity: 0.3;
}
#menu-items:hover>.menu-item:hover {
opacity: 1;
}
#menu-background-pattern {
height: 100vh;
width: 100vw;
background-image: radial-gradient( rgba(2255, 255, 255, 0.1) 9%, transparent 9%);
background-position: 0% 0%;
background-size: 12vmin 12vmin;
position: absolute;
left: 0px;
top: 0px;
z-index: 1;
transition: opacity 800ms ease, background-size 800ms ease;
}
#menu-items:hover~#menu-background-pattern {
background-size: 11vmin 11vmin;
opacity: 0.5;
}
#menu[data-active-index="0"]>#menu-background-pattern {
background-position: 0% -25%;
}
#menu[data-active-index="1"]>#menu-background-pattern {
background-position: 0% -50%;
}
#menu[data-active-index="2"]>#menu-background-pattern {
background-position: 0% -75%;
}
#menu[data-active-index="3"]>#menu-background-pattern {
background-position: 0% -100%;
}
<div id="menu">
<div id="menu-items">
<a href="/" class="menu-item">Home</a>
<a href="/" class="menu-item">Shop</a>
<a href="/" class="menu-item">About</a>
<a href="/" class="menu-item">Contact US</a>
</div>
<div id="menu-background-pattern"></div>
</div>
I want the background to update with an animation as I hover over menu items. Where exactly did I go wrong?
Via Active questions tagged javascript - Stack Overflow https://ift.tt/Yemw74r
Comments
Post a Comment