I'd like to change the color of my visual navigation, based on what "productcard" is visible in screen. It looks like this on my webpage (only on tablet and mobile):
Is there a way with javascript to make the 2nd, 3rd of 4th circle the darker grey based on what product is in viewport?
My markup right now is:
.usp-radio {
display: none!important;
}
.usp-container {
display: flex;
justify-content: normal;
flex-wrap: nowrap;
overflow-x: auto;
scroll-snap-type: x mandatory;
}
.usp-container::-webkit-scrollbar {
display: none;
}
.usp-item {
flex: 0 0 auto;
max-width: none!important;
width: 100%;
scroll-snap-align: start;
}
.usp-text {
max-width: 260px;
display: block;
margin: 0 auto;
padding-bottom: 15px;
}
#usp-1-button:checked ~ .usp-container .usp-item {
transform: translateX(0%);
transition: transform 0.3s ease-in-out;
}
#usp-2-button:checked ~ .usp-container .usp-item {
transform: translateX(-100%);
transition: transform 0.3s ease-in-out;
}
#usp-3-button:checked ~ .usp-container .usp-item {
transform: translateX(-200%);
transition: transform 0.3s ease-in-out;
}
#usp-4-button:checked ~ .usp-container .usp-item {
transform: translateX(-300%);
transition: transform 0.3s ease-in-out;
}
.content-container.usp-flex {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.usp-radio + label {
background-color: #C5C5C5;
width: 10px;
height: 10px;
border-radius: 50%;
order: 2;
margin: 0px 2.5px;
}
.usp-radio:checked + label {
background-color: #707070;
}
<div class="content-container usp-flex">
<input type="radio" id="usp-1-button" class="usp-radio" name="usp-slide" checked/>
<label for="usp-1-button"></label>
<input type="radio" id="usp-2-button" class="usp-radio" name="usp-slide"/>
<label for="usp-2-button"></label>
<input type="radio" id="usp-3-button" class="usp-radio" name="usp-slide"/>
<label id="usp-3-label" for="usp-3-button"></label>
<input type="radio" id="usp-4-button" class="usp-radio" name="usp-slide"/>
<label id="usp-4-label" for="usp-4-button"></label>
<div class="usp-container" style="order: 1;">
<div id="usp-1" class="usp-item">
<div><img src="https://www.voordeeluitjes.nl/Images/freeValues/userpanel-door.jpg" width="52" height="52"/></div>
<div style="margin: 20px 0px 10px 0px;"><span class="usp-title">Uniek kijkje achter de schermen</span></div>
<div><span class="usp-text">Doe mee aan een panelsessie en krijg direct een kijkje achter de schermen.</span></div>
</div>
<div id="usp-2" class="usp-item">
<div><img src="https://www.voordeeluitjes.nl/Images/freeValues/userpanel-feedback.jpg" width="52" height="52"/></div>
<div style="margin: 20px 0px 10px 0px;"><span class="usp-title">Vertel ons over jouw ideale website</span></div>
<div><span class="usp-text">Geef aan wat voor u belangrijk is en misschien ziet u uw ideeën later terug!</span></div>
</div>
<div id="usp-3" class="usp-item">
<div><img src="https://www.voordeeluitjes.nl/Images/freeValues/userpanel-reiskosten.jpg" width="52" height="52"/></div>
<div style="margin: 20px 0px 10px 0px;"><span class="usp-title">Reiskosten worden vergoed</span></div>
<div><span class="usp-text">Komt u bij ons langs op kantoor? Dan vergoeden wij uw reiskosten.</span></div>
</div>
<div id="usp-4" class="usp-item">
<div><img src="https://www.voordeeluitjes.nl/Images/freeValues/userpanel-hotel.jpg" width="52" height="52"/></div>
<div style="margin: 20px 0px 10px 0px;"><span class="usp-title">Maak kans op een GRATIS verblijf</span></div>
<div><span class="usp-text">Neemt u deel aan ons gebruikerspanel? Dan maakt u kans op een gratis uitje!</span></div>
</div>
</div>
</div>
So it updates when I use the navigation, but I also need it to update when the card is swiped to the left. I saw something that might work in this thread:
Changing color when specific div is visible
However that works for vertical offset/scrolling, not horizontal.