Prevent active accordion item from closing on click - javascript

i'm working on a design for a site, but i'm super new to any kind of coding, so there's a lot that i don't know the answer to (and haven't been able to find yet).
currently, i'd like to know if it's possible, with the code i currently have, to prevent the active accordion item/panel from closing when the header is clicked.
here's the relevant part of my current code:
var acc = document.getElementsByClassName("accordionHeader");
var panel = document.getElementsByClassName('accPanel');
for (var i = 0; i < acc.length; i++) {
acc[i].onclick = function() {
var setClasses = !this.classList.contains('open');
setClass(acc, 'open', 'remove');
setClass(panel, 'open', 'remove');
if (setClasses) {
this.classList.toggle("open");
this.nextElementSibling.classList.toggle("open");
}
}
}
function setClass(els, className, fnName) {
for (var i = 0; i < els.length; i++) {
els[i].classList[fnName](className);
}
}
document.getElementById("defaultOpen").click();
.accordionHeader {
background-color: #eee;
color: #444;
cursor: pointer;
padding: 18px;
width: 100%;
text-align: left;
border: none;
outline: none;
transition: 0.4s;
}
.accPanel {
padding: 0 18px;
background-color: white;
display: none;
overflow: hidden;
transition: max-height 0.5s ease-out;
}
.open {
display: block;
}
<!DOCTYPE html>
<html>
<head>
<title>polka time</title>
</head>
<body>
<div>
<button class="accordionHeader" id="defaultOpen">section 1</button>
<div class="accPanel">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</div>
<button class="accordionHeader">section 2</button>
<div class="accPanel">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</div>
<button class="accordionHeader">section 3</button>
<div class="accPanel">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</div>
</div>
<script src="character page js.js" type="text/javascript"></script>
</body>
</html>
if at all possible i'd like to not change too much about the code, since i only just got it working (more or less). i'm sure my code's a total mess though since i've mainly been copying off tutorials the whole time.
also if there's a good way to get the accordion to animate that would be a bonus.

You can add another isOpen statecheck to the function like in the snippet below so that you don't remove the open class when the element is opened.
Full code below.
// change
setClass(acc, 'open', 'remove');
setClass(panel, 'open', 'remove');
// to
var isOpen = !!this.classList.contains('open');
if (!isOpen){
setClass(acc, 'open', 'remove');
setClass(panel, 'open', 'remove');
}
var acc = document.getElementsByClassName("accordionHeader");
var panel = document.getElementsByClassName('accPanel');
for (var i = 0; i < acc.length; i++) {
acc[i].onclick = function() {
var setClasses = !this.classList.contains('open');
var isOpen = !!this.classList.contains('open');
if (!isOpen){
setClass(acc, 'open', 'remove');
setClass(panel, 'open', 'remove');
}
if (setClasses) {
this.classList.toggle("open");
this.nextElementSibling.classList.toggle("open");
}
}
}
function setClass(els, className, fnName) {
for (var i = 0; i < els.length; i++) {
els[i].classList[fnName](className);
}
}
document.getElementById("defaultOpen").click();
.accordionHeader {
background-color: #eee;
color: #444;
cursor: pointer;
padding: 18px;
width: 100%;
text-align: left;
border: none;
outline: none;
transition: 0.4s;
}
.accPanel {
padding: 0 18px;
background-color: white;
display: none;
overflow: hidden;
transition: max-height 0.5s ease-out;
}
.open {
display: block;
}
<!DOCTYPE html>
<html>
<head>
<title>polka time</title>
</head>
<body>
<div>
<button class="accordionHeader" id="defaultOpen">section 1</button>
<div class="accPanel">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</div>
<button class="accordionHeader">section 2</button>
<div class="accPanel">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</div>
<button class="accordionHeader">section 3</button>
<div class="accPanel">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</div>
</div>
<script src="character page js.js" type="text/javascript"></script>
</body>
</html>

This solution will prevent the active header from closing when a new header is clicked.
var acc = document.getElementsByClassName("accordionHeader");
var panel = document.getElementsByClassName('accPanel');
for (var i = 0; i < acc.length; i++) {
acc[i].onclick = function() {
var setClasses = !this.classList.contains('open');
var thisPanel = this.nextElementSibling;
setClass(this, 'open', 'remove');
setClass(thisPanel, 'open', 'remove');
if (setClasses) {
this.classList.toggle("open");
this.nextElementSibling.classList.toggle("open");
}
}
}
function setClass(el, className, fnName) {
el.classList[fnName](className);
}
document.getElementById("defaultOpen").click();
.accordionHeader {
background-color: #eee;
color: #444;
cursor: pointer;
padding: 18px;
width: 100%;
text-align: left;
border: none;
outline: none;
transition: 0.4s;
}
.accPanel {
padding: 0 18px;
background-color: white;
display: none;
overflow: hidden;
transition: max-height 0.5s ease-out;
}
.open {
display: block;
}
<!DOCTYPE html>
<html>
<head>
<title>polka time</title>
</head>
<body>
<div>
<button class="accordionHeader" id="defaultOpen">section 1</button>
<div class="accPanel">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</div>
<button class="accordionHeader">section 2</button>
<div class="accPanel">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</div>
<button class="accordionHeader">section 3</button>
<div class="accPanel">
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia
animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda
est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis
voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
</div>
</div>
<script src="character page js.js" type="text/javascript"></script>
</body>
</html>

Related

Nav Bar Pills to the Left and Text to the Right Bootstrap5

I am trying to have all my nav pills to the left and then add a single text element to the nav bar that aligns to the left/end and stays at the end of the navbar when the page is resized.
Navbar Img
I thought I solved this by adding a div so that the navbar pills would take up 50% width and the text width would also be 50% but set text-align to end. The only problem is when I add this div it separates the nav-links from their nav-pills and this causes the data-bs-toggle="pill" function not to work.
The top navbar has the text "RMWLL" position correctly but the pill toggle doesn't work.
The bottom navbar has the text incorrectly positioned but the pill toggle does work.
I want a combination where both the pill toggle work and the text is correctly positioned.
'''
<!DocType html>
<html lang="en">
<title>LMS 1</title>
<head>
<meta content="width=device-width, initial-scale=1, minimum-scale=1" name="viewport" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap#5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://kit.fontawesome.com/94a9ffdfe8.js" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap#5.1.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.9.2/umd/popper.min.js"></script>
<style>
.nav{
background: linear-gradient(90deg, rgba(0,0,0,1) 0%, rgba(14,0,0,1) 67%, rgba(19,29,178,1) 100%);
}
.nav-content{
display: flex;
width:50%;
}
.league-name{
color: white;
text-align: end;
padding: 20px;
width:50%;
}
.nav-pills .nav-link.active{
background-color: #131db2;
color: white;
}
.nav-link{
color: white;
}
.mainContent{
background-color: white;
border-radius: 15px;
}
.teamContent{
background-color: lightyellow;
border-radius: 15px;
}
body{
background-color: #D3D3D3;
padding-top: 150px;
}
.hidden{
display:none;
}
.test{
width: 16%;
display: flex;
}
</style>
<script>
function show(shown, hidden) {
document.getElementById(shown).style.display='block';
document.getElementById(hidden).style.display='none';
return false;
}
</script>
</head>
<body>
<!--HEADER-NAVIGATION -->
<div class="container-fluid fixed-top">
<div class="row">
<nav class="navbar">
<ul class="nav w-100 nav-pills" role="tablist">
<div class="nav-content ">
<a class="navbar-brand p-2 m-0 pe-5" href="#">
<img src="favicon_drawing.png" width="50" height="50">
</a> <!-- links to home page -->
<li class="nav-item py-3">
<a class="nav-link active" data-bs-toggle="pill" href="#" onclick="return show('homePage','teamPage');">Home</a>
</li>
<li class="nav-item py-3" href="#teamPage">
<a class="nav-link" data-bs-toggle="pill" onclick="return show('teamPage','homePage');">Teams</a>
</li>
</div>
<h4 class="league-name fw-bold">RMWLL</h4>
</ul>
</nav>
</div>
<div class="row">
<nav class="navbar ">
<ul class="nav w-100 nav-pills" role="tablist">
<a class="navbar-brand p-2 m-0 pe-5" href="#">
<img src="favicon_drawing.png" width="50" height="50">
</a> <!-- links to home page -->
<li class="nav-item py-3">
<a class="nav-link active" data-bs-toggle="pill" href="#" onclick="return show('homePage','teamPage');">Home</a>
</li>
<li class="nav-item py-3" href="#teamPage">
<a class="nav-link" data-bs-toggle="pill" onclick="return show('teamPage','homePage');">Teams</a>
</li>
<h4 class="league-name fw-bold">RMWLL</h4>
</ul>
</nav>
</div>
</div>
</div>
<div id="homePage">
<main class="container-fluid">
<h4 class="my-5 mainContent">Home Page</h4>
<p class="mainContent">"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p class="mainContent">"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p class="mainContent">"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
</main>
</div> <!--teamPage-->
<div class="container-fluid hidden" id="teamPage">
<h4 class="my-5 teamContent">Team Page</h4>
<p class="teamContent">"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p class="teamContent">"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
<p class="teamContent">"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat."</p>
</div>
</div> <!--teamPage-->
</body>
</html>
'''
Left and Right is replaced with start and end, So ml-auto is now ms-auto
and mr-auto is now me-auto

sticky element need to work only if viewable section is overflowing in y. (no scrollbar if little height)

I am creating a Whatsapp Navbar,
and I am having a problem with the sticky navbar.
see below for details
let navItems = document.querySelectorAll(".nav-item");
// adding a css variable that count how many items there is, to make the logic.
document.body.style.setProperty("--total-nav-items", `${navItems.length}`);
navItems.forEach((item, index) => {
item.addEventListener("click", () => {
// changing a css variable, and all the logic is in CSS
document.body.style.setProperty("--index", `${index}`);
toogleActive();
function toogleActive() {
// for setting opacity low to other not clicked icons
navItems.forEach((itemWithClass) => {
itemWithClass.classList.remove("active");
});
// making visible the active clicked item
item.classList.add("active");
}
});
});
#import url("https://fonts.googleapis.com/css2?family=Poppins:wght#500&display=swap");
:root {
--nav-height: 3rem;
--nav-bg: rgb(0, 128, 105);
--text-color: white;
--anim-speed: 0.5s;
color-scheme: light dark;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
overflow-y: auto;
overflow-x: hidden;
}
header {
background-color: var(--nav-bg);
height: var(--nav-height);
display: grid;
place-items: center start;
}
nav {
display: flex;
height: var(--nav-height);
background-color: var(--nav-bg);
color: var(--text-color);
text-transform: uppercase;
font-family: poppins;
user-select: none;
/* position: fixed; */
/* top: 0; */
/* left: 0; */
position: sticky;
top: 0;
width: 100vw;
}
nav .nav-item {
flex: 1;
display: grid;
place-items: center;
opacity: 0.5;
transition: opacity var(--anim-speed);
}
nav .nav-item:active {
background-color: rgba(255, 255, 255, 0.2);
}
nav .nav-item.active {
opacity: 1;
}
nav::before {
--indicator-width: calc(100% / var(--total-nav-items));
content: "";
position: absolute;
height: 0.2rem;
width: 100px;
background-color: var(--text-color);
bottom: 0;
width: var(--indicator-width);
left: calc(var(--index, 0) * var(--indicator-width));
transition: left var(--anim-speed);
box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.5);
}
#container {
/* border: 5px solid red; */
/* position: fixed; */
position: relative;
z-index: -1;
/* height: calc(100vh - var(--nav-height)); */
left: calc(-1 * (var(--index, 0) * 100vw));
transition: left var(--anim-speed);
display: grid;
grid-auto-flow: column;
grid-auto-columns: 100vw;
}
#container>* {
/* border: 2px solid red; */
height: calc(100vh - var(--nav-height));
padding: 0 1rem;
}
#media (prefers-color-scheme: dark) {
:root {
--nav-bg: rgb(31, 44, 52);
--text-color: rgb(9, 148, 115);
}
}
<header>
<span>Whatsapp</span>
</header>
<nav>
<div class="nav-item active">hello 1</div>
<div class="nav-item">hello 2</div>
<div class="nav-item">hello 3</div>
<div class="nav-item">hello 4</div>
<div class="nav-item">hello 5</div>
</nav>
<div id="container">
<!-- 1 -->
<section>
<h1>PAGE 1</h1>
<p>
<!-- see the fifth for the longest paragraph -->
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorem blanditiis sunt nulla porro dolor totam itaque saepe aliquam similique quibusdam placeat rem eum, perspiciatis, delectus iste praesentium. Quod, expedita magnam.
</p>
</section>
<!-- 2 -->
<section>
<h1>PAGE 2</h1>
<p>
Expedita saepe quibusdam nostrum iure aliquam earum voluptatibus maiores in eligendi, amet officia vitae error porro perferendis quaerat eum. Voluptatum vitae laudantium velit voluptate corrupti ab a fugiat iste ducimus!
</p>
</section>
<!-- 3 -->
<section>
<h1>PAGE 3</h1>
<p>
Incidunt ipsa tempora quos cumque quaerat quo praesentium repellat aut error? Est exercitationem magnam alias itaque vero aspernatur doloremque ad omnis reprehenderit libero debitis ea consequuntur, repudiandae non numquam sed?
</p>
</section>
<!-- 4 -->
<section>
<h1>PAGE 4</h1>
<p>
Incidunt ipsa tempora quos cumque quaerat quo praesentium repellat aut error? Est exercitationem magnam alias itaque vero aspernatur doloremque ad omnis reprehenderit libero debitis ea consequuntur, repudiandae non numquam sed?
</p>
</section>
<!-- 5 -->
<section>
<h1>PAGE 5</h1>
<p>
<!-- this is very long for a reason -->
Incidunt ipsa tempora quos cumque quaerat quo praesentium repellat aut error? Est exercitationem magnam alias itaque vero aspernatur doloremque ad omnis reprehenderit libero debitis ea consequuntur, repudiandae non numquam sed? Lorem ipsum dolor sit amet
consectetur adipisicing elit. Quis aliquam iure laudantium cum est neque ipsam error accusantium dolores, corporis dicta quo, voluptatem nostrum, veniam doloremque illo explicabo ipsa dolor. Quasi odio obcaecati, ad amet, repudiandae laborum facilis
repellat magni a corrupti enim? Quidem repudiandae ullam, sequi aliquid voluptate vitae, ipsa tempora, reprehenderit adipisci optio fugit perferendis libero hic. Nobis? Quo quod dicta vel fugiat magni suscipit, ad cum quibusdam eaque repudiandae,
veritatis sequi. Doloremque consequuntur quis porro fugiat delectus, sit, alias, temporibus ipsam perspiciatis ea aspernatur vitae tempora provident. Similique rerum alias, nostrum vero, doloribus porro ut labore fuga aperiam ullam, aspernatur veritatis
minus omnis atque assumenda nesciunt! Magni animi dignissimos, fuga qui deleniti quae a? Eius, autem exercitationem? Illo officiis reiciendis doloribus quis non iste harum assumenda vero, et eaque? Recusandae, eius ipsa excepturi accusantium dolorum
quidem nisi error vitae aspernatur adipisci porro, eaque eveniet asperiores corrupti dicta. Eos quae id recusandae aliquam, suscipit consequatur, iste, quas dignissimos ea enim voluptas beatae esse? Facere quas, eos assumenda, ea voluptatum dolores
eligendi incidunt, blanditiis laboriosam maxime obcaecati sint officia. Nihil at enim optio aut tempora quia, esse sint deserunt eaque. Molestiae mollitia illum odit corporis eum neque odio libero, dolores veritatis explicabo enim quidem rem illo
natus maxime cumque! Non laudantium ab veniam culpa dignissimos. Fugiat esse, laboriosam perspiciatis atque accusantium iste sint eaque autem iusto aut! Corrupti voluptatum voluptate dicta et, inventore placeat autem quidem nihil similique. Sit.
Totam quasi facere iste recusandae molestias! Eius hic natus velit unde. Deleniti sit vero magnam velit, voluptas, voluptatibus temporibus ipsam eum tempore eius ad ex atque repellat pariatur laborum est. Labore, voluptate! Nihil esse animi nisi
enim at? Harum, cupiditate. Maiores molestiae vitae provident iure magnam laboriosam, assumenda minima reprehenderit autem neque voluptatem perferendis ex quos optio voluptates sit laudantium? Dolores quasi maxime sed quos! Hic doloribus, vel molestias,
commodi magnam ducimus incidunt suscipit perferendis quis a accusantium earum vitae, similique facilis. Repellat corrupti ullam quod incidunt adipisci quibusdam id? Vero aliquid velit recusandae quibusdam similique nam inventore? Iusto maiores voluptatum
consectetur incidunt, architecto natus ducimus labore minima! Delectus cum repellat voluptatem cumque fugit labore magni quod! Nam, aspernatur est? Laborum porro soluta modi enim similique cumque non voluptatum inventore excepturi pariatur deserunt
sapiente magnam ad obcaecati asperiores laudantium, quaerat fugit consequatur? Sunt adipisci eveniet blanditiis delectus consequuntur, quibusdam aspernatur! Nobis culpa, cum consectetur repellat architecto voluptates est, quo eveniet dicta, excepturi
repellendus asperiores autem voluptatum voluptas et. Aliquid reprehenderit repellendus sint dolor illum velit tenetur dignissimos laborum animi placeat? Ex totam reprehenderit libero cum maxime voluptates modi perspiciatis. Facilis perferendis est
commodi natus eius esse? In, quisquam delectus voluptatibus magni molestiae vero illo sunt ea, excepturi eligendi, hic expedita! Vero deserunt aspernatur veniam repellendus architecto quibusdam maxime molestias quia saepe. Earum repellendus quasi
molestias ab aperiam quisquam tempora sit, hic incidunt! Odio exercitationem unde ipsam vitae amet et odit! Mollitia, iste! Inventore facere cum nemo, obcaecati tempora aliquam est corrupti quis delectus suscipit nostrum optio fugit perspiciatis
consequatur distinctio autem adipisci temporibus vero eveniet, qui saepe accusantium? Labore, odio! Aliquam sed incidunt repudiandae placeat minus quam! Officiis suscipit doloribus, voluptatibus minima, hic veniam quisquam ratione distinctio, reprehenderit
placeat vero! Iusto magni nobis qui dolores vero distinctio modi magnam consequuntur! Magnam, a, aliquam quibusdam beatae ea dolor nemo quisquam eligendi nesciunt fugiat perspiciatis assumenda, illo id exercitationem nisi debitis sint mollitia.
Omnis cupiditate beatae deleniti nisi id maiores atque perspiciatis. Minima, repudiandae eos expedita asperiores libero modi autem architecto voluptas provident sequi quis laudantium pariatur mollitia vero fuga quam dolores ipsum cum animi nihil
eaque cupiditate impedit nobis non. Esse. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Alias numquam blanditiis iure dicta exercitationem? Fuga animi exercitationem eius totam unde atque corrupti nam. Deleniti ut consequatur porro hic
numquam maxime? Soluta excepturi architecto cumque exercitationem pariatur, dignissimos voluptas blanditiis, culpa provident sed, corporis earum quia et? Delectus, fuga rem. Temporibus pariatur neque mollitia praesentium ea dolorum quo a unde eos!
Voluptatibus pariatur exercitationem quod sit quis velit quisquam odit atque libero cum nihil ex aliquam obcaecati impedit quas sapiente sint fugit, ipsa neque quae eligendi quo officia? Provident, fugit repellat. Eaque aliquam quasi hic voluptatum
eius. Natus quos rerum incidunt laudantium enim iusto deleniti. Magnam doloremque, soluta obcaecati ipsa quibusdam perferendis accusantium odio, reiciendis impedit ut cumque! Beatae, quibusdam iusto. Voluptas corrupti modi quos minus laborum ea
soluta excepturi officia veritatis eum esse, corporis, laboriosam et voluptatibus deserunt molestias tenetur molestiae. Accusamus sequi sapiente provident. Quasi incidunt ipsa nam in? Repellendus optio tenetur ex dolores ducimus nihil porro esse
tempore aspernatur veniam officia incidunt voluptate temporibus ut, a praesentium repellat enim pariatur eum magni voluptatem? Rerum commodi molestiae delectus veritatis! Dolor corrupti impedit quaerat sapiente, voluptate numquam expedita nam repellendus,
repudiandae commodi consectetur. Eos quis fugit, alias, voluptatum qui nam et harum architecto autem doloribus quidem similique maiores quae necessitatibus? Et magnam praesentium veniam in nisi minus laudantium porro, iusto doloribus fuga architecto
accusantium provident voluptatum, itaque eum ab deserunt quod nostrum quibusdam? Nihil quidem architecto excepturi esse quisquam dolorum. Saepe dolor voluptatibus perferendis veniam quibusdam corrupti quasi atque ad eius labore. Consectetur, suscipit
eius ullam quasi sint illo tempora aut dignissimos, molestiae esse impedit. Enim mollitia ab nesciunt fugit. Voluptas ad fugit molestiae officiis doloremque eos, accusamus soluta distinctio animi sed odit facere dolores. Illo asperiores autem eos
illum nesciunt doloribus repellat corporis nostrum odio atque, voluptatem veniam labore. Accusamus minus rerum modi voluptatum accusantium saepe eveniet porro dolores impedit fugiat beatae, inventore aperiam. Quis ipsam vero quod cum ipsa aut sapiente,
ducimus harum nesciunt sint, repellat nobis cupiditate. Nemo laudantium necessitatibus, fugit temporibus cumque repellat ad molestias explicabo ex dolore rem assumenda sit animi facere quasi tempore voluptatem unde! Ipsam magnam eum doloribus deserunt
voluptatum minus fuga sed? Cupiditate voluptatem nulla rerum, officiis obcaecati quae optio est, quaerat distinctio debitis porro quo blanditiis sint repellat? Modi suscipit qui molestiae, assumenda alias in aliquid esse, autem praesentium error
doloremque! Iusto amet porro doloribus, deleniti molestias reprehenderit fugiat et magnam. Ducimus ratione recusandae earum, nemo ad excepturi consequuntur pariatur eius doloribus laboriosam similique tenetur veniam fugit! Quibusdam tempore illum
architecto. Pariatur expedita nihil perspiciatis delectus repellendus suscipit corporis! Quo eum quam recusandae. Quaerat, numquam aperiam, totam reprehenderit veritatis hic ab in et enim quo saepe culpa sit iste tempora aspernatur. Consequuntur
dolor quia, quo facere vitae optio laudantium repudiandae similique ex sed placeat expedita doloribus aliquam a atque cumque iste maiores repellendus eveniet natus tempora ducimus amet aut. Esse, similique! Ex sint ut, nesciunt sapiente tempora
autem repudiandae illum dignissimos! Ducimus, fugiat ad est non cum quos explicabo alias distinctio debitis eveniet at illum. Veniam officiis pariatur quasi exercitationem minus. Fugiat assumenda accusamus at consequuntur fuga ipsa temporibus sapiente
inventore dolores a incidunt iste veritatis nam harum dolor asperiores velit maiores, perspiciatis fugit laboriosam, facere quis? Laudantium, reiciendis aut! Hic. Ullam atque tempora assumenda. Dignissimos odio ex, facilis placeat recusandae eum
repudiandae quae quia doloribus nihil minus voluptatem, esse consectetur quas mollitia et quo quos ab delectus assumenda, saepe fugiat? Neque necessitatibus iure iusto fugiat corporis, officiis possimus tenetur? Facere minus beatae id. Voluptas,
iure dignissimos reprehenderit similique dolore tenetur odit inventore dolor enim, consectetur expedita quaerat dolores quam recusandae. Corrupti magni atque voluptatibus aspernatur itaque ducimus officia fugiat qui perferendis minima odio quam
cumque iusto minus doloribus ipsam explicabo, modi ratione. Libero, facere aperiam possimus asperiores reiciendis odio quas. Aspernatur, error accusantium! Delectus, dolore a reprehenderit, quidem, quas repellendus cum alias consequuntur voluptatibus
aspernatur praesentium vitae porro eos sunt dolor numquam minima. Provident inventore architecto tempore incidunt, quas amet. Esse dolor corporis nisi earum perspiciatis exercitationem illum eveniet accusantium nulla qui hic doloremque est reiciendis
autem nobis, aperiam repudiandae incidunt consectetur. Officiis, suscipit atque quisquam tenetur esse distinctio tempore. Vel possimus repellat minima asperiores nesciunt dignissimos dolores cupiditate officiis porro, nihil tenetur fugit accusamus,
fugiat delectus ab, deserunt vero debitis hic nam veritatis laboriosam ipsa illum odio. Impedit, non! Repellendus accusantium quasi veritatis nam. Excepturi, numquam. Soluta omnis est officia vitae eligendi. Maiores, nemo praesentium. Debitis nostrum
nam beatae commodi nobis ex nemo iure ipsum, alias pariatur placeat quod! Laudantium ipsam voluptate expedita nam dolorem ad ducimus aut minima similique quis dolores nemo blanditiis placeat, incidunt facilis illo nulla, distinctio ex. Delectus
voluptates, impedit quam voluptate aliquam aperiam. Nihil. Autem, ipsa provident quasi fuga veniam impedit illo vitae eligendi recusandae neque soluta, maxime, voluptatem laudantium voluptatibus officiis incidunt vero perspiciatis quidem. Repellat
reprehenderit repudiandae laudantium minima recusandae, porro necessitatibus? Impedit sequi voluptatem iusto! Quos laudantium architecto consequatur ducimus aperiam assumenda facilis facere praesentium impedit quae beatae dolorem aut sequi fuga
asperiores explicabo quas, amet magnam minus? Deleniti, molestiae reprehenderit. Voluptates id illum qui exercitationem voluptas incidunt quae autem aspernatur doloremque! Fugiat veniam eos assumenda quos, dolore quibusdam non quis autem incidunt
facere ipsam repudiandae atque animi labore? Debitis, ea! Maxime nemo, nulla sit explicabo laudantium minima quia? Minima quaerat, fugiat id esse aspernatur, placeat quos eos et impedit quae ducimus! Nesciunt corporis provident, dolores accusantium
minima quod unde fugit. Assumenda, voluptas nam necessitatibus consequatur, sint ea ut quis asperiores porro tempore eum impedit omnis perferendis similique incidunt maxime laboriosam dolorum odio aliquam voluptatibus ab nesciunt nihil? Autem, officia
nihil? Quam iure consequuntur repellat temporibus sapiente optio exercitationem, incidunt id vero ullam eos voluptatem veniam, blanditiis harum, ad nostrum a placeat rerum aliquid asperiores saepe! Eveniet neque saepe magni dolor. A, facilis repellendus.
Blanditiis, facilis. Cum necessitatibus repellat autem mollitia assumenda voluptate minus delectus aspernatur! Soluta suscipit quasi architecto vel cum unde esse rerum, animi veniam quos atque ipsa temporibus. Excepturi dolores natus distinctio
qui a debitis unde, nihil, consequuntur aliquam veritatis doloribus eius nostrum et sint quisquam laborum facere at iste quas fuga, possimus illo dignissimos maxime sapiente? Optio. Fuga aut nam in culpa dolor dignissimos, ratione quisquam ullam
eligendi velit aspernatur, quasi laboriosam, laborum totam adipisci. Est, aliquam! Repellendus voluptate perferendis cum impedit assumenda ex doloremque obcaecati temporibus? Rerum, nostrum consectetur facilis iusto in dolor cumque qui! Facere accusamus
animi pariatur suscipit optio repellat ipsa labore, veritatis repudiandae aliquid aut itaque quos, autem rem odio vel officiis voluptate? Quas, nulla consequatur asperiores soluta libero minima praesentium sed adipisci magnam suscipit. Facilis quas
hic error laboriosam totam, dicta facere consequatur commodi dolorum numquam? Praesentium vel facilis eligendi laudantium accusamus! Suscipit natus ducimus aspernatur, labore id autem quasi sed obcaecati et! Corporis, nihil perferendis eveniet ducimus
odit a consectetur alias, similique nisi tenetur exercitationem, voluptas quisquam aliquid consequuntur totam pariatur? Quasi iste expedita ad? Magnam repellat quisquam animi quae. Explicabo illum id, quis dolores est rem dicta placeat optio ducimus
sed, et voluptas? Sequi reiciendis omnis quis at harum repudiandae! Perspiciatis magni id minima soluta culpa ut numquam tempore natus rerum distinctio, atque consequatur rem, placeat officiis quam ad, ducimus tenetur adipisci vero quod! Facilis
dicta odio voluptatum consequatur laudantium. Ipsam cumque dolore dicta illum voluptate assumenda in reprehenderit maxime eaque, deleniti dolorem minus itaque ex officiis earum ad libero excepturi! Quae, ex nemo sint obcaecati placeat corporis?
Molestiae, vel. Beatae nobis quos dolorum animi iure incidunt ipsa corrupti. Placeat voluptates ab rem blanditiis provident tempora veniam dicta tenetur dolor voluptate officiis quia reiciendis, et ut quas impedit? Nisi, dolor! Veniam nihil ipsam
blanditiis laboriosam, itaque, placeat exercitationem temporibus tenetur eligendi unde reiciendis laudantium quis, optio quod. Vitae, cupiditate cum praesentium explicabo tempora soluta nemo est provident, labore neque saepe? Rem neque veniam molestiae
maiores enim eos dicta minus consequuntur dolores atque molestias blanditiis commodi voluptas reprehenderit, voluptate aperiam perspiciatis nesciunt quasi unde ab magni nulla! Et, obcaecati? Expedita, aliquam? Dolor quaerat cumque veritatis ipsa
eum dicta doloremque eveniet aut vel minus, quis eius ex id tempora, saepe alias, numquam aperiam omnis quibusdam consequatur hic? Corporis quidem delectus est ad? Temporibus omnis, autem, consequuntur dolorem eligendi perferendis doloremque neque
mollitia molestias possimus dignissimos molestiae veniam facere? Molestiae quisquam eaque voluptates itaque cum voluptatibus eveniet iste, fugit, quam dolores totam neque. Quia harum dolores beatae quod vitae repellat sit. Perspiciatis blanditiis
autem animi corporis minus ducimus reiciendis explicabo obcaecati consectetur molestiae vero dolore, doloribus iure cumque maxime esse? Aut, repudiandae nemo! Expedita hic a saepe facilis eos illo unde esse? Minus labore laboriosam natus, illum
dolorem nihil et porro pariatur nam aperiam dolore! Dignissimos nobis accusamus debitis dolor quisquam, id asperiores? Facilis eius dolorum quasi cupiditate nostrum mollitia illo, vero culpa rem facere earum fuga doloribus officiis tenetur voluptates
perferendis sed temporibus sunt rerum molestias iure totam. Eaque doloribus quia reiciendis! Sint aliquid, ratione eaque iusto architecto sunt cum laudantium quaerat officiis commodi porro. Quaerat magnam ex nihil maxime hic corporis architecto
dignissimos, totam cum, veniam, officiis tenetur quae velit saepe.
</p>
</section>
</div>
the sticky is ✅ working fine,
❌ but the problem if I am viewing in another page that has a little text,
the scrollbar still appears.
this is because they follow the height of the container that have inside the section. and since the container have inside 5 sections nested it will have only the bigger height.
so in this example "page 5" have a lot of text and is creating the scrollbar.
so I want that if I am in "page 1" there isn't any sticky functionality, no scrollbar.
if page 5 then yes, we add that scrollbar and then we have also sticky functionality.
this is difficult since I have a page transition on it.
edit: now I find also a solution myself :)
function disactivateScroll() {
let navHeight = document.querySelector("nav").offsetHeight;
let minHeightSection = window.innerHeight - (navHeight * 2);
if(sections[index].offsetHeight > minHeightSection) {
document.body.style.overflowY = "auto";
} else {
document.body.style.overflowY = "hidden";
}
}
body {
overflow: hidden;
}
let navItems = document.querySelectorAll(".nav-item");
let sections = document.querySelectorAll("#container > *");
// adding a css variable that count how many items there is, to make the logic.
document.body.style.setProperty("--total-nav-items", `${navItems.length}`);
navItems.forEach((item, index) => {
item.addEventListener("click", () => {
// changing a css variable, and all the logic is in CSS
document.body.style.setProperty("--index", `${index}`);
toogleActive();
disactivateScroll();
function toogleActive() {
// for setting opacity low to other not clicked icons
navItems.forEach((itemWithClass) => {
itemWithClass.classList.remove("active");
});
// making visible the active clicked item
item.classList.add("active");
}
function disactivateScroll() {
let navHeight = document.querySelector("nav").offsetHeight;
let minHeightSection = window.innerHeight - (navHeight * 2);
if (sections[index].offsetHeight > minHeightSection) {
document.body.style.overflowY = "auto";
} else {
document.body.style.overflowY = "hidden";
}
}
});
});
#import url("https://fonts.googleapis.com/css2?family=Poppins:wght#500&display=swap");
:root {
--nav-height: 3rem;
--nav-bg: rgb(0, 128, 105);
--text-color: white;
--anim-speed: 0.5s;
color-scheme: light dark;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
overflow: hidden;
}
header {
background-color: var(--nav-bg);
height: var(--nav-height);
display: grid;
place-items: center start;
}
nav {
display: flex;
height: var(--nav-height);
background-color: var(--nav-bg);
color: var(--text-color);
text-transform: uppercase;
font-family: poppins;
user-select: none;
/* position: fixed; */
/* top: 0; */
/* left: 0; */
position: sticky;
top: 0;
width: 100vw;
}
nav .nav-item {
flex: 1;
display: grid;
place-items: center;
opacity: 0.5;
transition: opacity var(--anim-speed);
}
nav .nav-item:active {
background-color: rgba(255, 255, 255, 0.2);
}
nav .nav-item.active {
opacity: 1;
}
nav::before {
--indicator-width: calc(100% / var(--total-nav-items));
content: "";
position: absolute;
height: 0.2rem;
width: 100px;
background-color: var(--text-color);
bottom: 0;
width: var(--indicator-width);
left: calc(var(--index, 0) * var(--indicator-width));
transition: left var(--anim-speed);
box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.5);
}
#container {
/* border: 5px solid red; */
/* position: fixed; */
position: relative;
z-index: -1;
/* height: calc(100vh - var(--nav-height)); */
left: calc(-1 * (var(--index, 0) * 100vw));
transition: left var(--anim-speed);
display: grid;
grid-auto-flow: column;
grid-auto-columns: 100vw;
}
#container>* {
/* border: 2px solid red; */
height: min-content;
min-height: calc(100vh - (var(--nav-height) * 2));
padding: 0 1rem;
border: 5px solid red;
}
#media (prefers-color-scheme: dark) {
:root {
--nav-bg: rgb(31, 44, 52);
--text-color: rgb(9, 148, 115);
}
}
you can use position: absolute to remove elements from the document flow:
let navItems = document.querySelectorAll(".nav-item");
const sections = Array.from(document.querySelectorAll("#container > section"));
sections.forEach((section, index) => section.style.setProperty("--section", index));
// adding a css variable that count how many items there is, to make the logic.
document.body.style.setProperty("--total-nav-items", `${navItems.length}`);
navItems.forEach((item, index) => {
item.addEventListener("click", () => {
// changing a css variable, and all the logic is in CSS
document.body.style.setProperty("--index", `${index}`);
toogleActive();
function toogleActive() {
// for setting opacity low to other not clicked icons
navItems.forEach((itemWithClass) => {
itemWithClass.classList.remove("active");
});
sections.forEach((section, sectionIndex) => section.classList.toggle("active", sectionIndex === index))
// making visible the active clicked item
item.classList.add("active");
}
});
});
#import url("https://fonts.googleapis.com/css2?family=Poppins:wght#500&display=swap");
:root {
--nav-height: 3rem;
--nav-bg: rgb(0, 128, 105);
--text-color: white;
--anim-speed: 0.5s;
color-scheme: light dark;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
overflow-y: auto;
overflow-x: hidden;
}
header {
background-color: var(--nav-bg);
height: var(--nav-height);
display: grid;
place-items: center start;
}
nav {
display: flex;
height: var(--nav-height);
background-color: var(--nav-bg);
color: var(--text-color);
text-transform: uppercase;
font-family: poppins;
user-select: none;
/* position: fixed; */
/* top: 0; */
/* left: 0; */
position: sticky;
top: 0;
width: 100vw;
z-index: 1;
}
nav .nav-item {
flex: 1;
display: grid;
place-items: center;
opacity: 0.5;
transition: opacity var(--anim-speed);
}
nav .nav-item:active {
background-color: rgba(255, 255, 255, 0.2);
}
nav .nav-item.active {
opacity: 1;
}
nav::before {
--indicator-width: calc(100% / var(--total-nav-items));
content: "";
position: absolute;
height: 0.2rem;
width: 100px;
background-color: var(--text-color);
bottom: 0;
width: var(--indicator-width);
left: calc(var(--index, 0) * var(--indicator-width));
transition: left var(--anim-speed);
box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.5);
}
#container {
position: relative;
overflow-y: hidden;
}
#container>* {
position: absolute;
padding: var(--nav-height) 1rem 0;
width: 100%;
left: calc(100vw * (var(--section) - var(--index, 0)));
transition: left var(--anim-speed);
}
#container > .active {
position: relative;
}
#media (prefers-color-scheme: dark) {
:root {
--nav-bg: rgb(31, 44, 52);
--text-color: rgb(9, 148, 115);
}
}
<header>
<span>Whatsapp</span>
</header>
<nav>
<div class="nav-item active">hello 1</div>
<div class="nav-item">hello 2</div>
<div class="nav-item">hello 3</div>
<div class="nav-item">hello 4</div>
<div class="nav-item">hello 5</div>
</nav>
<div id="container">
<!-- 1 -->
<section class="active">
<h1>PAGE 1</h1>
<p>
<!-- see the fifth for the longest paragraph -->
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorem blanditiis sunt nulla porro dolor totam itaque saepe aliquam similique quibusdam placeat rem eum, perspiciatis, delectus iste praesentium. Quod, expedita magnam.
</p>
</section>
<!-- 2 -->
<section>
<h1>PAGE 2</h1>
<p>
Expedita saepe quibusdam nostrum iure aliquam earum voluptatibus maiores in eligendi, amet officia vitae error porro perferendis quaerat eum. Voluptatum vitae laudantium velit voluptate corrupti ab a fugiat iste ducimus!
</p>
</section>
<!-- 3 -->
<section>
<h1>PAGE 3</h1>
<p>
Incidunt ipsa tempora quos cumque quaerat quo praesentium repellat aut error? Est exercitationem magnam alias itaque vero aspernatur doloremque ad omnis reprehenderit libero debitis ea consequuntur, repudiandae non numquam sed?
</p>
</section>
<!-- 4 -->
<section>
<h1>PAGE 4</h1>
<p>
Incidunt ipsa tempora quos cumque quaerat quo praesentium repellat aut error? Est exercitationem magnam alias itaque vero aspernatur doloremque ad omnis reprehenderit libero debitis ea consequuntur, repudiandae non numquam sed?
</p>
</section>
<!-- 5 -->
<section>
<h1>PAGE 5</h1>
<p>
<!-- this is very long for a reason -->
Incidunt ipsa tempora quos cumque quaerat quo praesentium repellat aut error? Est exercitationem magnam alias itaque vero aspernatur doloremque ad omnis reprehenderit libero debitis ea consequuntur, repudiandae non numquam sed? Lorem ipsum dolor sit amet
consectetur adipisicing elit. Quis aliquam iure laudantium cum est neque ipsam error accusantium dolores, corporis dicta quo, voluptatem nostrum, veniam doloremque illo explicabo ipsa dolor. Quasi odio obcaecati, ad amet, repudiandae laborum facilis
repellat magni a corrupti enim? Quidem repudiandae ullam, sequi aliquid voluptate vitae, ipsa tempora, reprehenderit adipisci optio fugit perferendis libero hic. Nobis? Quo quod dicta vel fugiat magni suscipit, ad cum quibusdam eaque repudiandae,
veritatis sequi. Doloremque consequuntur quis porro fugiat delectus, sit, alias, temporibus ipsam perspiciatis ea aspernatur vitae tempora provident. Similique rerum alias, nostrum vero, doloribus porro ut labore fuga aperiam ullam, aspernatur veritatis
minus omnis atque assumenda nesciunt! Magni animi dignissimos, fuga qui deleniti quae a? Eius, autem exercitationem? Illo officiis reiciendis doloribus quis non iste harum assumenda vero, et eaque? Recusandae, eius ipsa excepturi accusantium dolorum
quidem nisi error vitae aspernatur adipisci porro, eaque eveniet asperiores corrupti dicta. Eos quae id recusandae aliquam, suscipit consequatur, iste, quas dignissimos ea enim voluptas beatae esse? Facere quas, eos assumenda, ea voluptatum dolores
eligendi incidunt, blanditiis laboriosam maxime obcaecati sint officia. Nihil at enim optio aut tempora quia, esse sint deserunt eaque. Molestiae mollitia illum odit corporis eum neque odio libero, dolores veritatis explicabo enim quidem rem illo
natus maxime cumque! Non laudantium ab veniam culpa dignissimos. Fugiat esse, laboriosam perspiciatis atque accusantium iste sint eaque autem iusto aut! Corrupti voluptatum voluptate dicta et, inventore placeat autem quidem nihil similique. Sit.
Totam quasi facere iste recusandae molestias! Eius hic natus velit unde. Deleniti sit vero magnam velit, voluptas, voluptatibus temporibus ipsam eum tempore eius ad ex atque repellat pariatur laborum est. Labore, voluptate! Nihil esse animi nisi
enim at? Harum, cupiditate. Maiores molestiae vitae provident iure magnam laboriosam, assumenda minima reprehenderit autem neque voluptatem perferendis ex quos optio voluptates sit laudantium? Dolores quasi maxime sed quos! Hic doloribus, vel molestias,
commodi magnam ducimus incidunt suscipit perferendis quis a accusantium earum vitae, similique facilis. Repellat corrupti ullam quod incidunt adipisci quibusdam id? Vero aliquid velit recusandae quibusdam similique nam inventore? Iusto maiores voluptatum
consectetur incidunt, architecto natus ducimus labore minima! Delectus cum repellat voluptatem cumque fugit labore magni quod! Nam, aspernatur est? Laborum porro soluta modi enim similique cumque non voluptatum inventore excepturi pariatur deserunt
sapiente magnam ad obcaecati asperiores laudantium, quaerat fugit consequatur? Sunt adipisci eveniet blanditiis delectus consequuntur, quibusdam aspernatur! Nobis culpa, cum consectetur repellat architecto voluptates est, quo eveniet dicta, excepturi
repellendus asperiores autem voluptatum voluptas et. Aliquid reprehenderit repellendus sint dolor illum velit tenetur dignissimos laborum animi placeat? Ex totam reprehenderit libero cum maxime voluptates modi perspiciatis. Facilis perferendis est
commodi natus eius esse? In, quisquam delectus voluptatibus magni molestiae vero illo sunt ea, excepturi eligendi, hic expedita! Vero deserunt aspernatur veniam repellendus architecto quibusdam maxime molestias quia saepe. Earum repellendus quasi
molestias ab aperiam quisquam tempora sit, hic incidunt! Odio exercitationem unde ipsam vitae amet et odit! Mollitia, iste! Inventore facere cum nemo, obcaecati tempora aliquam est corrupti quis delectus suscipit nostrum optio fugit perspiciatis
consequatur distinctio autem adipisci temporibus vero eveniet, qui saepe accusantium? Labore, odio! Aliquam sed incidunt repudiandae placeat minus quam! Officiis suscipit doloribus, voluptatibus minima, hic veniam quisquam ratione distinctio, reprehenderit
placeat vero! Iusto magni nobis qui dolores vero distinctio modi magnam consequuntur! Magnam, a, aliquam quibusdam beatae ea dolor nemo quisquam eligendi nesciunt fugiat perspiciatis assumenda, illo id exercitationem nisi debitis sint mollitia.
Omnis cupiditate beatae deleniti nisi id maiores atque perspiciatis. Minima, repudiandae eos expedita asperiores libero modi autem architecto voluptas provident sequi quis laudantium pariatur mollitia vero fuga quam dolores ipsum cum animi nihil
eaque cupiditate impedit nobis non. Esse. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Alias numquam blanditiis iure dicta exercitationem? Fuga animi exercitationem eius totam unde atque corrupti nam. Deleniti ut consequatur porro hic
numquam maxime? Soluta excepturi architecto cumque exercitationem pariatur, dignissimos voluptas blanditiis, culpa provident sed, corporis earum quia et? Delectus, fuga rem. Temporibus pariatur neque mollitia praesentium ea dolorum quo a unde eos!
Voluptatibus pariatur exercitationem quod sit quis velit quisquam odit atque libero cum nihil ex aliquam obcaecati impedit quas sapiente sint fugit, ipsa neque quae eligendi quo officia? Provident, fugit repellat. Eaque aliquam quasi hic voluptatum
eius. Natus quos rerum incidunt laudantium enim iusto deleniti. Magnam doloremque, soluta obcaecati ipsa quibusdam perferendis accusantium odio, reiciendis impedit ut cumque! Beatae, quibusdam iusto. Voluptas corrupti modi quos minus laborum ea
soluta excepturi officia veritatis eum esse, corporis, laboriosam et voluptatibus deserunt molestias tenetur molestiae. Accusamus sequi sapiente provident. Quasi incidunt ipsa nam in? Repellendus optio tenetur ex dolores ducimus nihil porro esse
tempore aspernatur veniam officia incidunt voluptate temporibus ut, a praesentium repellat enim pariatur eum magni voluptatem? Rerum commodi molestiae delectus veritatis! Dolor corrupti impedit quaerat sapiente, voluptate numquam expedita nam repellendus,
repudiandae commodi consectetur. Eos quis fugit, alias, voluptatum qui nam et harum architecto autem doloribus quidem similique maiores quae necessitatibus? Et magnam praesentium veniam in nisi minus laudantium porro, iusto doloribus fuga architecto
accusantium provident voluptatum, itaque eum ab deserunt quod nostrum quibusdam? Nihil quidem architecto excepturi esse quisquam dolorum. Saepe dolor voluptatibus perferendis veniam quibusdam corrupti quasi atque ad eius labore. Consectetur, suscipit
eius ullam quasi sint illo tempora aut dignissimos, molestiae esse impedit. Enim mollitia ab nesciunt fugit. Voluptas ad fugit molestiae officiis doloremque eos, accusamus soluta distinctio animi sed odit facere dolores. Illo asperiores autem eos
illum nesciunt doloribus repellat corporis nostrum odio atque, voluptatem veniam labore. Accusamus minus rerum modi voluptatum accusantium saepe eveniet porro dolores impedit fugiat beatae, inventore aperiam. Quis ipsam vero quod cum ipsa aut sapiente,
ducimus harum nesciunt sint, repellat nobis cupiditate. Nemo laudantium necessitatibus, fugit temporibus cumque repellat ad molestias explicabo ex dolore rem assumenda sit animi facere quasi tempore voluptatem unde! Ipsam magnam eum doloribus deserunt
voluptatum minus fuga sed? Cupiditate voluptatem nulla rerum, officiis obcaecati quae optio est, quaerat distinctio debitis porro quo blanditiis sint repellat? Modi suscipit qui molestiae, assumenda alias in aliquid esse, autem praesentium error
doloremque! Iusto amet porro doloribus, deleniti molestias reprehenderit fugiat et magnam. Ducimus ratione recusandae earum, nemo ad excepturi consequuntur pariatur eius doloribus laboriosam similique tenetur veniam fugit! Quibusdam tempore illum
architecto. Pariatur expedita nihil perspiciatis delectus repellendus suscipit corporis! Quo eum quam recusandae. Quaerat, numquam aperiam, totam reprehenderit veritatis hic ab in et enim quo saepe culpa sit iste tempora aspernatur. Consequuntur
dolor quia, quo facere vitae optio laudantium repudiandae similique ex sed placeat expedita doloribus aliquam a atque cumque iste maiores repellendus eveniet natus tempora ducimus amet aut. Esse, similique! Ex sint ut, nesciunt sapiente tempora
autem repudiandae illum dignissimos! Ducimus, fugiat ad est non cum quos explicabo alias distinctio debitis eveniet at illum. Veniam officiis pariatur quasi exercitationem minus. Fugiat assumenda accusamus at consequuntur fuga ipsa temporibus sapiente
inventore dolores a incidunt iste veritatis nam harum dolor asperiores velit maiores, perspiciatis fugit laboriosam, facere quis? Laudantium, reiciendis aut! Hic. Ullam atque tempora assumenda. Dignissimos odio ex, facilis placeat recusandae eum
repudiandae quae quia doloribus nihil minus voluptatem, esse consectetur quas mollitia et quo quos ab delectus assumenda, saepe fugiat? Neque necessitatibus iure iusto fugiat corporis, officiis possimus tenetur? Facere minus beatae id. Voluptas,
iure dignissimos reprehenderit similique dolore tenetur odit inventore dolor enim, consectetur expedita quaerat dolores quam recusandae. Corrupti magni atque voluptatibus aspernatur itaque ducimus officia fugiat qui perferendis minima odio quam
cumque iusto minus doloribus ipsam explicabo, modi ratione. Libero, facere aperiam possimus asperiores reiciendis odio quas. Aspernatur, error accusantium! Delectus, dolore a reprehenderit, quidem, quas repellendus cum alias consequuntur voluptatibus
aspernatur praesentium vitae porro eos sunt dolor numquam minima. Provident inventore architecto tempore incidunt, quas amet. Esse dolor corporis nisi earum perspiciatis exercitationem illum eveniet accusantium nulla qui hic doloremque est reiciendis
autem nobis, aperiam repudiandae incidunt consectetur. Officiis, suscipit atque quisquam tenetur esse distinctio tempore. Vel possimus repellat minima asperiores nesciunt dignissimos dolores cupiditate officiis porro, nihil tenetur fugit accusamus,
fugiat delectus ab, deserunt vero debitis hic nam veritatis laboriosam ipsa illum odio. Impedit, non! Repellendus accusantium quasi veritatis nam. Excepturi, numquam. Soluta omnis est officia vitae eligendi. Maiores, nemo praesentium. Debitis nostrum
nam beatae commodi nobis ex nemo iure ipsum, alias pariatur placeat quod! Laudantium ipsam voluptate expedita nam dolorem ad ducimus aut minima similique quis dolores nemo blanditiis placeat, incidunt facilis illo nulla, distinctio ex. Delectus
voluptates, impedit quam voluptate aliquam aperiam. Nihil. Autem, ipsa provident quasi fuga veniam impedit illo vitae eligendi recusandae neque soluta, maxime, voluptatem laudantium voluptatibus officiis incidunt vero perspiciatis quidem. Repellat
reprehenderit repudiandae laudantium minima recusandae, porro necessitatibus? Impedit sequi voluptatem iusto! Quos laudantium architecto consequatur ducimus aperiam assumenda facilis facere praesentium impedit quae beatae dolorem aut sequi fuga
asperiores explicabo quas, amet magnam minus? Deleniti, molestiae reprehenderit. Voluptates id illum qui exercitationem voluptas incidunt quae autem aspernatur doloremque! Fugiat veniam eos assumenda quos, dolore quibusdam non quis autem incidunt
facere ipsam repudiandae atque animi labore? Debitis, ea! Maxime nemo, nulla sit explicabo laudantium minima quia? Minima quaerat, fugiat id esse aspernatur, placeat quos eos et impedit quae ducimus! Nesciunt corporis provident, dolores accusantium
minima quod unde fugit. Assumenda, voluptas nam necessitatibus consequatur, sint ea ut quis asperiores porro tempore eum impedit omnis perferendis similique incidunt maxime laboriosam dolorum odio aliquam voluptatibus ab nesciunt nihil? Autem, officia
nihil? Quam iure consequuntur repellat temporibus sapiente optio exercitationem, incidunt id vero ullam eos voluptatem veniam, blanditiis harum, ad nostrum a placeat rerum aliquid asperiores saepe! Eveniet neque saepe magni dolor. A, facilis repellendus.
Blanditiis, facilis. Cum necessitatibus repellat autem mollitia assumenda voluptate minus delectus aspernatur! Soluta suscipit quasi architecto vel cum unde esse rerum, animi veniam quos atque ipsa temporibus. Excepturi dolores natus distinctio
qui a debitis unde, nihil, consequuntur aliquam veritatis doloribus eius nostrum et sint quisquam laborum facere at iste quas fuga, possimus illo dignissimos maxime sapiente? Optio. Fuga aut nam in culpa dolor dignissimos, ratione quisquam ullam
eligendi velit aspernatur, quasi laboriosam, laborum totam adipisci. Est, aliquam! Repellendus voluptate perferendis cum impedit assumenda ex doloremque obcaecati temporibus? Rerum, nostrum consectetur facilis iusto in dolor cumque qui! Facere accusamus
animi pariatur suscipit optio repellat ipsa labore, veritatis repudiandae aliquid aut itaque quos, autem rem odio vel officiis voluptate? Quas, nulla consequatur asperiores soluta libero minima praesentium sed adipisci magnam suscipit. Facilis quas
hic error laboriosam totam, dicta facere consequatur commodi dolorum numquam? Praesentium vel facilis eligendi laudantium accusamus! Suscipit natus ducimus aspernatur, labore id autem quasi sed obcaecati et! Corporis, nihil perferendis eveniet ducimus
odit a consectetur alias, similique nisi tenetur exercitationem, voluptas quisquam aliquid consequuntur totam pariatur? Quasi iste expedita ad? Magnam repellat quisquam animi quae. Explicabo illum id, quis dolores est rem dicta placeat optio ducimus
sed, et voluptas? Sequi reiciendis omnis quis at harum repudiandae! Perspiciatis magni id minima soluta culpa ut numquam tempore natus rerum distinctio, atque consequatur rem, placeat officiis quam ad, ducimus tenetur adipisci vero quod! Facilis
dicta odio voluptatum consequatur laudantium. Ipsam cumque dolore dicta illum voluptate assumenda in reprehenderit maxime eaque, deleniti dolorem minus itaque ex officiis earum ad libero excepturi! Quae, ex nemo sint obcaecati placeat corporis?
Molestiae, vel. Beatae nobis quos dolorum animi iure incidunt ipsa corrupti. Placeat voluptates ab rem blanditiis provident tempora veniam dicta tenetur dolor voluptate officiis quia reiciendis, et ut quas impedit? Nisi, dolor! Veniam nihil ipsam
blanditiis laboriosam, itaque, placeat exercitationem temporibus tenetur eligendi unde reiciendis laudantium quis, optio quod. Vitae, cupiditate cum praesentium explicabo tempora soluta nemo est provident, labore neque saepe? Rem neque veniam molestiae
maiores enim eos dicta minus consequuntur dolores atque molestias blanditiis commodi voluptas reprehenderit, voluptate aperiam perspiciatis nesciunt quasi unde ab magni nulla! Et, obcaecati? Expedita, aliquam? Dolor quaerat cumque veritatis ipsa
eum dicta doloremque eveniet aut vel minus, quis eius ex id tempora, saepe alias, numquam aperiam omnis quibusdam consequatur hic? Corporis quidem delectus est ad? Temporibus omnis, autem, consequuntur dolorem eligendi perferendis doloremque neque
mollitia molestias possimus dignissimos molestiae veniam facere? Molestiae quisquam eaque voluptates itaque cum voluptatibus eveniet iste, fugit, quam dolores totam neque. Quia harum dolores beatae quod vitae repellat sit. Perspiciatis blanditiis
autem animi corporis minus ducimus reiciendis explicabo obcaecati consectetur molestiae vero dolore, doloribus iure cumque maxime esse? Aut, repudiandae nemo! Expedita hic a saepe facilis eos illo unde esse? Minus labore laboriosam natus, illum
dolorem nihil et porro pariatur nam aperiam dolore! Dignissimos nobis accusamus debitis dolor quisquam, id asperiores? Facilis eius dolorum quasi cupiditate nostrum mollitia illo, vero culpa rem facere earum fuga doloribus officiis tenetur voluptates
perferendis sed temporibus sunt rerum molestias iure totam. Eaque doloribus quia reiciendis! Sint aliquid, ratione eaque iusto architecto sunt cum laudantium quaerat officiis commodi porro. Quaerat magnam ex nihil maxime hic corporis architecto
dignissimos, totam cum, veniam, officiis tenetur quae velit saepe.
</p>
</section>
</div>
I've edited your snippet to get the desired effect for your code. What I changed was moving from using CSS variables to "push" the content to different areas of the screen to change the visibility, I simply created two states for your sections:
active (Flexbox)
inactive (Invisible)
Then, switching from a grid display to using flexbox on the sections allows for the scroll behavior desired. I also set a fixed max height on active sections and a reactive bottom padding to make it nice for the user. These aspects are adjustable to your desire, however.
Hopefully this helps and I'd be more than happy to explain my answer in more detail
let navItems = document.querySelectorAll(".nav-item");
let sections = Array.from(document.getElementById("container").children);
//Initially make all other sections inactive except the first
sections.forEach((section, index) => {
if(index == 0) section.classList.add("active-section");
else section.classList.add("inactive-section");
});
navItems.forEach((item, index) => {
item.addEventListener("click", () => {
toogleActive(index);
function toogleActive(index) {
// for setting opacity low to other not clicked icons
navItems.forEach(itemWithClass => {
itemWithClass.classList.remove("active");
});
//Make sections visible or invisible based on nav item clicked
sections.forEach((section, i) => {
if(i != index) {
section.classList.remove("active-section");
section.classList.add("inactive-section");
} else {
section.classList.remove("inactive-section");
section.classList.add("active-section");
}
});
// making visible the active clicked item
item.classList.add("active");
}
});
});
#import url("https://fonts.googleapis.com/css2?family=Poppins:wght#500&display=swap");
:root {
--nav-height: 3rem;
--nav-bg: rgb(0, 128, 105);
--text-color: white;
--anim-speed: 0.5s;
color-scheme: light dark;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
overflow-y: auto;
overflow-x: hidden;
}
header {
background-color: var(--nav-bg);
height: var(--nav-height);
display: grid;
place-items: center start;
}
nav {
display: flex;
height: var(--nav-height);
background-color: var(--nav-bg);
color: var(--text-color);
text-transform: uppercase;
font-family: poppins;
user-select: none;
/* position: fixed; */
/* top: 0; */
/* left: 0; */
position: sticky;
top: 0;
width: 100vw;
}
nav .nav-item {
flex: 1;
display: grid;
place-items: center;
opacity: 0.5;
transition: opacity var(--anim-speed);
}
nav .nav-item:active {
background-color: rgba(255, 255, 255, 0.2);
}
nav .nav-item.active {
opacity: 1;
}
nav::before {
--indicator-width: calc(100% / var(--total-nav-items));
content: "";
position: absolute;
height: 0.2rem;
width: 100px;
background-color: var(--text-color);
bottom: 0;
width: var(--indicator-width);
left: calc(var(--index, 0) * var(--indicator-width));
transition: left var(--anim-speed);
box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.5);
}
#container {
position: fixed;
top: --nav-height
display: flex;
height: 100vh;
}
.active-section {
display: flex;
flex-direction: column;
max-height: 90vh;
overflow-y: scroll;
padding: 5%;
padding-bottom: 10%;
}
.inactive-section {
display: none;
}
#media (prefers-color-scheme: dark) {
:root {
--nav-bg: rgb(31, 44, 52);
--text-color: rgb(9, 148, 115);
}
}
<header>
<span>Whatsapp</span>
</header>
<nav>
<div class="nav-item active">hello 1</div>
<div class="nav-item">hello 2</div>
<div class="nav-item">hello 3</div>
<div class="nav-item">hello 4</div>
<div class="nav-item">hello 5</div>
</nav>
<div id="container">
<!-- 1 -->
<section>
<h1>PAGE 1</h1>
<p>
<!-- see the fifth for the longest paragraph -->
Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorem blanditiis sunt nulla porro dolor totam itaque saepe aliquam similique quibusdam placeat rem eum, perspiciatis, delectus iste praesentium. Quod, expedita magnam.
</p>
</section>
<!-- 2 -->
<section>
<h1>PAGE 2</h1>
<p>
Expedita saepe quibusdam nostrum iure aliquam earum voluptatibus maiores in eligendi, amet officia vitae error porro perferendis quaerat eum. Voluptatum vitae laudantium velit voluptate corrupti ab a fugiat iste ducimus!
</p>
</section>
<!-- 3 -->
<section>
<h1>PAGE 3</h1>
<p>
Incidunt ipsa tempora quos cumque quaerat quo praesentium repellat aut error? Est exercitationem magnam alias itaque vero aspernatur doloremque ad omnis reprehenderit libero debitis ea consequuntur, repudiandae non numquam sed?
</p>
</section>
<!-- 4 -->
<section>
<h1>PAGE 4</h1>
<p>
Incidunt ipsa tempora quos cumque quaerat quo praesentium repellat aut error? Est exercitationem magnam alias itaque vero aspernatur doloremque ad omnis reprehenderit libero debitis ea consequuntur, repudiandae non numquam sed?
</p>
</section>
<!-- 5 -->
<section>
<h1>PAGE 5</h1>
<p>
<!-- this is very long for a reason -->
Incidunt ipsa tempora quos cumque quaerat quo praesentium repellat aut error? Est exercitationem magnam alias itaque vero aspernatur doloremque ad omnis reprehenderit libero debitis ea consequuntur, repudiandae non numquam sed? Lorem ipsum dolor sit amet
consectetur adipisicing elit. Quis aliquam iure laudantium cum est neque ipsam error accusantium dolores, corporis dicta quo, voluptatem nostrum, veniam doloremque illo explicabo ipsa dolor. Quasi odio obcaecati, ad amet, repudiandae laborum facilis
repellat magni a corrupti enim? Quidem repudiandae ullam, sequi aliquid voluptate vitae, ipsa tempora, reprehenderit adipisci optio fugit perferendis libero hic. Nobis? Quo quod dicta vel fugiat magni suscipit, ad cum quibusdam eaque repudiandae,
veritatis sequi. Doloremque consequuntur quis porro fugiat delectus, sit, alias, temporibus ipsam perspiciatis ea aspernatur vitae tempora provident. Similique rerum alias, nostrum vero, doloribus porro ut labore fuga aperiam ullam, aspernatur veritatis
minus omnis atque assumenda nesciunt! Magni animi dignissimos, fuga qui deleniti quae a? Eius, autem exercitationem? Illo officiis reiciendis doloribus quis non iste harum assumenda vero, et eaque? Recusandae, eius ipsa excepturi accusantium dolorum
quidem nisi error vitae aspernatur adipisci porro, eaque eveniet asperiores corrupti dicta. Eos quae id recusandae aliquam, suscipit consequatur, iste, quas dignissimos ea enim voluptas beatae esse? Facere quas, eos assumenda, ea voluptatum dolores
eligendi incidunt, blanditiis laboriosam maxime obcaecati sint officia. Nihil at enim optio aut tempora quia, esse sint deserunt eaque. Molestiae mollitia illum odit corporis eum neque odio libero, dolores veritatis explicabo enim quidem rem illo
natus maxime cumque! Non laudantium ab veniam culpa dignissimos. Fugiat esse, laboriosam perspiciatis atque accusantium iste sint eaque autem iusto aut! Corrupti voluptatum voluptate dicta et, inventore placeat autem quidem nihil similique. Sit.
Totam quasi facere iste recusandae molestias! Eius hic natus velit unde. Deleniti sit vero magnam velit, voluptas, voluptatibus temporibus ipsam eum tempore eius ad ex atque repellat pariatur laborum est. Labore, voluptate! Nihil esse animi nisi
enim at? Harum, cupiditate. Maiores molestiae vitae provident iure magnam laboriosam, assumenda minima reprehenderit autem neque voluptatem perferendis ex quos optio voluptates sit laudantium? Dolores quasi maxime sed quos! Hic doloribus, vel molestias,
commodi magnam ducimus incidunt suscipit perferendis quis a accusantium earum vitae, similique facilis. Repellat corrupti ullam quod incidunt adipisci quibusdam id? Vero aliquid velit recusandae quibusdam similique nam inventore? Iusto maiores voluptatum
consectetur incidunt, architecto natus ducimus labore minima! Delectus cum repellat voluptatem cumque fugit labore magni quod! Nam, aspernatur est? Laborum porro soluta modi enim similique cumque non voluptatum inventore excepturi pariatur deserunt
sapiente magnam ad obcaecati asperiores laudantium, quaerat fugit consequatur? Sunt adipisci eveniet blanditiis delectus consequuntur, quibusdam aspernatur! Nobis culpa, cum consectetur repellat architecto voluptates est, quo eveniet dicta, excepturi
repellendus asperiores autem voluptatum voluptas et. Aliquid reprehenderit repellendus sint dolor illum velit tenetur dignissimos laborum animi placeat? Ex totam reprehenderit libero cum maxime voluptates modi perspiciatis. Facilis perferendis est
commodi natus eius esse? In, quisquam delectus voluptatibus magni molestiae vero illo sunt ea, excepturi eligendi, hic expedita! Vero deserunt aspernatur veniam repellendus architecto quibusdam maxime molestias quia saepe. Earum repellendus quasi
molestias ab aperiam quisquam tempora sit, hic incidunt! Odio exercitationem unde ipsam vitae amet et odit! Mollitia, iste! Inventore facere cum nemo, obcaecati tempora aliquam est corrupti quis delectus suscipit nostrum optio fugit perspiciatis
consequatur distinctio autem adipisci temporibus vero eveniet, qui saepe accusantium? Labore, odio! Aliquam sed incidunt repudiandae placeat minus quam! Officiis suscipit doloribus, voluptatibus minima, hic veniam quisquam ratione distinctio, reprehenderit
placeat vero! Iusto magni nobis qui dolores vero distinctio modi magnam consequuntur! Magnam, a, aliquam quibusdam beatae ea dolor nemo quisquam eligendi nesciunt fugiat perspiciatis assumenda, illo id exercitationem nisi debitis sint mollitia.
Omnis cupiditate beatae deleniti nisi id maiores atque perspiciatis. Minima, repudiandae eos expedita asperiores libero modi autem architecto voluptas provident sequi quis laudantium pariatur mollitia vero fuga quam dolores ipsum cum animi nihil
eaque cupiditate impedit nobis non. Esse. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Alias numquam blanditiis iure dicta exercitationem? Fuga animi exercitationem eius totam unde atque corrupti nam. Deleniti ut consequatur porro hic
numquam maxime? Soluta excepturi architecto cumque exercitationem pariatur, dignissimos voluptas blanditiis, culpa provident sed, corporis earum quia et? Delectus, fuga rem. Temporibus pariatur neque mollitia praesentium ea dolorum quo a unde eos!
Voluptatibus pariatur exercitationem quod sit quis velit quisquam odit atque libero cum nihil ex aliquam obcaecati impedit quas sapiente sint fugit, ipsa neque quae eligendi quo officia? Provident, fugit repellat. Eaque aliquam quasi hic voluptatum
eius. Natus quos rerum incidunt laudantium enim iusto deleniti. Magnam doloremque, soluta obcaecati ipsa quibusdam perferendis accusantium odio, reiciendis impedit ut cumque! Beatae, quibusdam iusto. Voluptas corrupti modi quos minus laborum ea
soluta excepturi officia veritatis eum esse, corporis, laboriosam et voluptatibus deserunt molestias tenetur molestiae. Accusamus sequi sapiente provident. Quasi incidunt ipsa nam in? Repellendus optio tenetur ex dolores ducimus nihil porro esse
tempore aspernatur veniam officia incidunt voluptate temporibus ut, a praesentium repellat enim pariatur eum magni voluptatem? Rerum commodi molestiae delectus veritatis! Dolor corrupti impedit quaerat sapiente, voluptate numquam expedita nam repellendus,
repudiandae commodi consectetur. Eos quis fugit, alias, voluptatum qui nam et harum architecto autem doloribus quidem similique maiores quae necessitatibus? Et magnam praesentium veniam in nisi minus laudantium porro, iusto doloribus fuga architecto
accusantium provident voluptatum, itaque eum ab deserunt quod nostrum quibusdam? Nihil quidem architecto excepturi esse quisquam dolorum. Saepe dolor voluptatibus perferendis veniam quibusdam corrupti quasi atque ad eius labore. Consectetur, suscipit
eius ullam quasi sint illo tempora aut dignissimos, molestiae esse impedit. Enim mollitia ab nesciunt fugit. Voluptas ad fugit molestiae officiis doloremque eos, accusamus soluta distinctio animi sed odit facere dolores. Illo asperiores autem eos
illum nesciunt doloribus repellat corporis nostrum odio atque, voluptatem veniam labore. Accusamus minus rerum modi voluptatum accusantium saepe eveniet porro dolores impedit fugiat beatae, inventore aperiam. Quis ipsam vero quod cum ipsa aut sapiente,
ducimus harum nesciunt sint, repellat nobis cupiditate. Nemo laudantium necessitatibus, fugit temporibus cumque repellat ad molestias explicabo ex dolore rem assumenda sit animi facere quasi tempore voluptatem unde! Ipsam magnam eum doloribus deserunt
voluptatum minus fuga sed? Cupiditate voluptatem nulla rerum, officiis obcaecati quae optio est, quaerat distinctio debitis porro quo blanditiis sint repellat? Modi suscipit qui molestiae, assumenda alias in aliquid esse, autem praesentium error
doloremque! Iusto amet porro doloribus, deleniti molestias reprehenderit fugiat et magnam. Ducimus ratione recusandae earum, nemo ad excepturi consequuntur pariatur eius doloribus laboriosam similique tenetur veniam fugit! Quibusdam tempore illum
architecto. Pariatur expedita nihil perspiciatis delectus repellendus suscipit corporis! Quo eum quam recusandae. Quaerat, numquam aperiam, totam reprehenderit veritatis hic ab in et enim quo saepe culpa sit iste tempora aspernatur. Consequuntur
dolor quia, quo facere vitae optio laudantium repudiandae similique ex sed placeat expedita doloribus aliquam a atque cumque iste maiores repellendus eveniet natus tempora ducimus amet aut. Esse, similique! Ex sint ut, nesciunt sapiente tempora
autem repudiandae illum dignissimos! Ducimus, fugiat ad est non cum quos explicabo alias distinctio debitis eveniet at illum. Veniam officiis pariatur quasi exercitationem minus. Fugiat assumenda accusamus at consequuntur fuga ipsa temporibus sapiente
inventore dolores a incidunt iste veritatis nam harum dolor asperiores velit maiores, perspiciatis fugit laboriosam, facere quis? Laudantium, reiciendis aut! Hic. Ullam atque tempora assumenda. Dignissimos odio ex, facilis placeat recusandae eum
repudiandae quae quia doloribus nihil minus voluptatem, esse consectetur quas mollitia et quo quos ab delectus assumenda, saepe fugiat? Neque necessitatibus iure iusto fugiat corporis, officiis possimus tenetur? Facere minus beatae id. Voluptas,
iure dignissimos reprehenderit similique dolore tenetur odit inventore dolor enim, consectetur expedita quaerat dolores quam recusandae. Corrupti magni atque voluptatibus aspernatur itaque ducimus officia fugiat qui perferendis minima odio quam
cumque iusto minus doloribus ipsam explicabo, modi ratione. Libero, facere aperiam possimus asperiores reiciendis odio quas. Aspernatur, error accusantium! Delectus, dolore a reprehenderit, quidem, quas repellendus cum alias consequuntur voluptatibus
aspernatur praesentium vitae porro eos sunt dolor numquam minima. Provident inventore architecto tempore incidunt, quas amet. Esse dolor corporis nisi earum perspiciatis exercitationem illum eveniet accusantium nulla qui hic doloremque est reiciendis
autem nobis, aperiam repudiandae incidunt consectetur. Officiis, suscipit atque quisquam tenetur esse distinctio tempore. Vel possimus repellat minima asperiores nesciunt dignissimos dolores cupiditate officiis porro, nihil tenetur fugit accusamus,
fugiat delectus ab, deserunt vero debitis hic nam veritatis laboriosam ipsa illum odio. Impedit, non! Repellendus accusantium quasi veritatis nam. Excepturi, numquam. Soluta omnis est officia vitae eligendi. Maiores, nemo praesentium. Debitis nostrum
nam beatae commodi nobis ex nemo iure ipsum, alias pariatur placeat quod! Laudantium ipsam voluptate expedita nam dolorem ad ducimus aut minima similique quis dolores nemo blanditiis placeat, incidunt facilis illo nulla, distinctio ex. Delectus
voluptates, impedit quam voluptate aliquam aperiam. Nihil. Autem, ipsa provident quasi fuga veniam impedit illo vitae eligendi recusandae neque soluta, maxime, voluptatem laudantium voluptatibus officiis incidunt vero perspiciatis quidem. Repellat
reprehenderit repudiandae laudantium minima recusandae, porro necessitatibus? Impedit sequi voluptatem iusto! Quos laudantium architecto consequatur ducimus aperiam assumenda facilis facere praesentium impedit quae beatae dolorem aut sequi fuga
asperiores explicabo quas, amet magnam minus? Deleniti, molestiae reprehenderit. Voluptates id illum qui exercitationem voluptas incidunt quae autem aspernatur doloremque! Fugiat veniam eos assumenda quos, dolore quibusdam non quis autem incidunt
facere ipsam repudiandae atque animi labore? Debitis, ea! Maxime nemo, nulla sit explicabo laudantium minima quia? Minima quaerat, fugiat id esse aspernatur, placeat quos eos et impedit quae ducimus! Nesciunt corporis provident, dolores accusantium
minima quod unde fugit. Assumenda, voluptas nam necessitatibus consequatur, sint ea ut quis asperiores porro tempore eum impedit omnis perferendis similique incidunt maxime laboriosam dolorum odio aliquam voluptatibus ab nesciunt nihil? Autem, officia
nihil? Quam iure consequuntur repellat temporibus sapiente optio exercitationem, incidunt id vero ullam eos voluptatem veniam, blanditiis harum, ad nostrum a placeat rerum aliquid asperiores saepe! Eveniet neque saepe magni dolor. A, facilis repellendus.
Blanditiis, facilis. Cum necessitatibus repellat autem mollitia assumenda voluptate minus delectus aspernatur! Soluta suscipit quasi architecto vel cum unde esse rerum, animi veniam quos atque ipsa temporibus. Excepturi dolores natus distinctio
qui a debitis unde, nihil, consequuntur aliquam veritatis doloribus eius nostrum et sint quisquam laborum facere at iste quas fuga, possimus illo dignissimos maxime sapiente? Optio. Fuga aut nam in culpa dolor dignissimos, ratione quisquam ullam
eligendi velit aspernatur, quasi laboriosam, laborum totam adipisci. Est, aliquam! Repellendus voluptate perferendis cum impedit assumenda ex doloremque obcaecati temporibus? Rerum, nostrum consectetur facilis iusto in dolor cumque qui! Facere accusamus
animi pariatur suscipit optio repellat ipsa labore, veritatis repudiandae aliquid aut itaque quos, autem rem odio vel officiis voluptate? Quas, nulla consequatur asperiores soluta libero minima praesentium sed adipisci magnam suscipit. Facilis quas
hic error laboriosam totam, dicta facere consequatur commodi dolorum numquam? Praesentium vel facilis eligendi laudantium accusamus! Suscipit natus ducimus aspernatur, labore id autem quasi sed obcaecati et! Corporis, nihil perferendis eveniet ducimus
odit a consectetur alias, similique nisi tenetur exercitationem, voluptas quisquam aliquid consequuntur totam pariatur? Quasi iste expedita ad? Magnam repellat quisquam animi quae. Explicabo illum id, quis dolores est rem dicta placeat optio ducimus
sed, et voluptas? Sequi reiciendis omnis quis at harum repudiandae! Perspiciatis magni id minima soluta culpa ut numquam tempore natus rerum distinctio, atque consequatur rem, placeat officiis quam ad, ducimus tenetur adipisci vero quod! Facilis
dicta odio voluptatum consequatur laudantium. Ipsam cumque dolore dicta illum voluptate assumenda in reprehenderit maxime eaque, deleniti dolorem minus itaque ex officiis earum ad libero excepturi! Quae, ex nemo sint obcaecati placeat corporis?
Molestiae, vel. Beatae nobis quos dolorum animi iure incidunt ipsa corrupti. Placeat voluptates ab rem blanditiis provident tempora veniam dicta tenetur dolor voluptate officiis quia reiciendis, et ut quas impedit? Nisi, dolor! Veniam nihil ipsam
blanditiis laboriosam, itaque, placeat exercitationem temporibus tenetur eligendi unde reiciendis laudantium quis, optio quod. Vitae, cupiditate cum praesentium explicabo tempora soluta nemo est provident, labore neque saepe? Rem neque veniam molestiae
maiores enim eos dicta minus consequuntur dolores atque molestias blanditiis commodi voluptas reprehenderit, voluptate aperiam perspiciatis nesciunt quasi unde ab magni nulla! Et, obcaecati? Expedita, aliquam? Dolor quaerat cumque veritatis ipsa
eum dicta doloremque eveniet aut vel minus, quis eius ex id tempora, saepe alias, numquam aperiam omnis quibusdam consequatur hic? Corporis quidem delectus est ad? Temporibus omnis, autem, consequuntur dolorem eligendi perferendis doloremque neque
mollitia molestias possimus dignissimos molestiae veniam facere? Molestiae quisquam eaque voluptates itaque cum voluptatibus eveniet iste, fugit, quam dolores totam neque. Quia harum dolores beatae quod vitae repellat sit. Perspiciatis blanditiis
autem animi corporis minus ducimus reiciendis explicabo obcaecati consectetur molestiae vero dolore, doloribus iure cumque maxime esse? Aut, repudiandae nemo! Expedita hic a saepe facilis eos illo unde esse? Minus labore laboriosam natus, illum
dolorem nihil et porro pariatur nam aperiam dolore! Dignissimos nobis accusamus debitis dolor quisquam, id asperiores? Facilis eius dolorum quasi cupiditate nostrum mollitia illo, vero culpa rem facere earum fuga doloribus officiis tenetur voluptates
perferendis sed temporibus sunt rerum molestias iure totam. Eaque doloribus quia reiciendis! Sint aliquid, ratione eaque iusto architecto sunt cum laudantium quaerat officiis commodi porro. Quaerat magnam ex nihil maxime hic corporis architecto
dignissimos, totam cum, veniam, officiis tenetur quae velit saepe.
</p>
</section>
</div>

Content of div partially hidden behind header when the link to the div on same page is clicked

I need the contents of <div a id="contentAbout">to fully appear when I click on the btnAbout link after scrolling down to the bottom of the page it is on, but when the link is clicked, and page jumps back to the top, the top part of the content is hidden (by a few lines) behind the <header> element, which is and needs to always remain in position at the top of the page (as per position: sticky; in the css). I need the top part of the contentAbout div to show under the header. I use plain javascript to display each div block as and when the links or buttons are clicked. This problem occurs regardless if it a link with an anchor to the div on the same page or a button with no anchor link that just executes the javascript to display the block. I believe the issue lies in the css, but not sure where or what to research to resolve this issue. Using Chrome.
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="./style.css" type="text/css" rel="stylesheet" />
<script src="./script.js" type="text/javascript"></script>
<title></title>
</head>
<body>
<div id="content-wrapper">
<header>
<nav class="nav">
<h1>website name | <span id="contentHeading"></span></h1>
<a href="index.html#contentAbout" id="btnAbout" name="btnNav" value="about"
onclick="contentAbout();">about</a>
<input type="button" id="btnPortfolio" name="btnNav" value="portfolio" onclick="contentPortfolio();" />
<input type="button" id="btnResume" name="btnNav" value="resume" onclick="contentResume();" />
<input type="button" id="btnContact" name="btnNav" value="contact" onclick="contentContact();" />
<input type="button" id="btnBlog" name="btnNav" value="blog" onclick="contentBlog();" />
</nav>
</header>
<main>
<div id="hidden"></div>
<div a id="contentAbout">
Lorem ipsum dolor, sit amet consectetur adipisicing elit. Et pariatur doloribus nemo temporibus dolor
earum iure. Consequuntur consectetur inventore aperiam quae sed, quis doloremque fugit iste placeat
dignissimos fuga, saepe nemo, maiores ipsum aliquid voluptas? Ut ea ex iusto. Asperiores eligendi
assumenda corporis aspernatur laborum animi quas impedit. Molestias quos fugit, exercitationem sequi
blanditiis, dolores maxime numquam illo nesciunt delectus nihil quis est quia sit facilis quod. Officia
ipsam minima voluptatibus distinctio esse cum repellendus obcaecati? Tempore consectetur blanditiis
alias sequi aspernatur sunt architecto recusandae ratione, numquam aperiam quasi sit asperiores delectus
praesentium minima quo voluptates nihil reprehenderit. Fugiat nulla assumenda laudantium reiciendis
enim? Ut iste, magni voluptates, aut quo earum obcaecati nemo voluptas enim nam voluptatem impedit vero
debitis quasi similique. Nam eveniet est aperiam magni odit necessitatibus architecto a nobis deleniti
saepe quas fugit numquam sed cumque, culpa molestias ratione temporibus exercitationem, ex sapiente!
Optio iste laboriosam dolores repellat eveniet, id enim rem provident porro est corporis minima nulla
mollitia ex cum quidem neque? Omnis quas tempora vel odio. Commodi, reiciendis iure! Voluptatibus,
sequi. Impedit ad sed est aperiam laboriosam eligendi veniam nobis perspiciatis optio labore sapiente
cum quos tenetur minus, ipsam ducimus quod eius eum qui. Aut tempora, excepturi dignissimos delectus
voluptate consequatur qui! Consequatur, saepe modi quo, ipsam sunt eum tempora aperiam, nemo tenetur
totam possimus repellendus ex minus laudantium! Accusamus fugiat id aliquam, quos eos exercitationem
dolor, officia ea officiis enim libero ab dolores adipisci eligendi iure labore nam. Nobis, totam
voluptatem! Itaque adipisci, explicabo corporis perspiciatis provident at doloremque nesciunt odio
facilis error maiores culpa nemo vitae, exercitationem dolorum facere officia sequi optio enim et alias!
Nihil suscipit delectus libero, repellendus rem quas eius neque cum vel esse tempora incidunt sed earum,
veritatis voluptate fugiat praesentium rerum perspiciatis alias voluptatibus dicta. Id debitis eos,
excepturi delectus deleniti ad omnis consequuntur reiciendis reprehenderit molestiae eligendi ratione et
ipsa, cumque similique incidunt voluptas magnam, iure quas dolorum aliquid? Quia culpa doloremque
nostrum eligendi consequatur iste similique hic qui eos illum non commodi numquam beatae deserunt, odio
facere deleniti consectetur? Enim dignissimos at dolore eum, velit, nesciunt culpa ad fugit sunt
corrupti asperiores obcaecati! Ex in molestias itaque! Autem necessitatibus modi debitis, deserunt
quisquam quasi sapiente molestiae eaque et dolores sint voluptas, amet quod sed. Eaque numquam porro
molestiae quae consequuntur commodi harum, non impedit veniam beatae vitae reiciendis, nulla aut libero!
Mollitia cupiditate, minus corporis temporibus neque quisquam itaque unde consequuntur maiores eum
pariatur esse culpa odit nobis voluptates architecto harum impedit ducimus iste earum tenetur nesciunt
veritatis! Modi officiis voluptas eaque repudiandae suscipit aut ipsa itaque. Facilis perspiciatis
eligendi a blanditiis rem earum omnis suscipit voluptate nisi minima laudantium perferendis est aperiam,
hic similique doloribus. Necessitatibus blanditiis magnam nostrum ipsa aliquid voluptates molestiae
aperiam. Ullam, consectetur, minus atque deserunt consequatur libero possimus quaerat repellat veniam
officia magni quos, est perferendis sunt cupiditate dolores nulla aspernatur iste? Quas cum, magnam
possimus eveniet quisquam sapiente vel hic sit cupiditate, recusandae iste atque quam aperiam veniam
temporibus voluptatum assumenda ut eius est odio, perspiciatis nisi commodi. Eos mollitia rem dolores
voluptatum optio nihil corrupti doloremque numquam. Iure ratione inventore eaque? Numquam ducimus id
porro tempora sapiente laborum voluptate recusandae soluta. Iste placeat ipsa officia autem sequi
consequuntur commodi, quibusdam maxime debitis facere animi temporibus pariatur veritatis molestiae enim
reiciendis tempora omnis aspernatur ea ullam atque error vel vero? Cum quibusdam, illum, quam
perspiciatis sunt earum maiores itaque est, repellendus minima et. Laboriosam, nulla facere esse nihil
ut dolore rerum odit asperiores? Quam quo amet alias sit fugiat repellendus sed, iusto voluptatibus,
assumenda nihil eaque aperiam laudantium quasi expedita error autem ullam, impedit quidem odit quas
delectus quos provident. Provident, ea iusto alias, libero qui iste voluptatum laborum saepe rerum
veniam sit dolorum, quam nemo minus ratione nesciunt eaque eius. Dolores iusto suscipit eius fuga ut
nemo libero quam, aperiam alias facere magnam, necessitatibus iure cupiditate voluptas? Ducimus nihil
assumenda quam fugit ea pariatur sint, fuga reprehenderit incidunt neque, qui animi alias iure? Harum
fuga aperiam, voluptatibus est adipisci reprehenderit quos assumenda ipsam, saepe ad nisi ut alias
molestias voluptas at facilis quod maiores ratione dolorum eos aliquid iure! Ut itaque repellat,
doloribus deleniti quaerat voluptas, cupiditate aperiam eum error sunt vel quis iusto inventore iste
sint esse. Deleniti natus impedit sunt, assumenda et atque earum minus fugiat excepturi consectetur
harum tenetur eos eum labore eaque dolorum quaerat omnis sequi maxime! Incidunt, dignissimos expedita?
Eum, non ducimus deserunt quod veritatis minus sunt animi ab nostrum dolorem impedit sint officia
tempora alias obcaecati perspiciatis hic quisquam molestias! Expedita itaque praesentium cupiditate
possimus rem earum optio natus ut. Nobis voluptatum inventore ex, laborum a voluptates dolorum ullam
corrupti, voluptatem nostrum voluptate. A error eveniet, natus veritatis illo eos accusantium labore
repudiandae exercitationem ex modi omnis eligendi mollitia dignissimos ipsam deserunt obcaecati soluta
molestias dolores rerum velit porro. Aperiam totam inventore, accusantium molestiae ex assumenda dolore
ratione molestias vel. Modi molestias harum, id distinctio labore eius deserunt rerum illo, magni esse
quis quibusdam sit sed. Nisi facilis quibusdam ullam veniam aliquam quae labore unde a, dignissimos
rerum magnam esse. Ipsam temporibus dolorum error adipisci suscipit iusto? Nemo illo velit molestias et
at esse nisi. Dolore explicabo, ut nemo earum repellendus, pariatur, inventore eligendi nobis provident
corrupti delectus! Veniam voluptate ratione deserunt modi blanditiis corporis aliquid, nisi facilis ex
similique dolorum magnam! Explicabo provident voluptatum, enim ipsam ullam adipisci amet suscipit veniam
in consectetur voluptates dolorum repellendus deleniti facilis. Debitis molestiae rem, facere eaque
doloremque perferendis voluptas sed molestias sint ipsam odit eius placeat, libero, tempora numquam
illum iure? A debitis sint in veritatis, atque adipisci distinctio quaerat eligendi cupiditate
recusandae labore quod minima tempora, voluptates fugiat! Nostrum est consequatur ullam corporis,
recusandae atque, obcaecati quibusdam totam quae similique in minus error. Voluptate unde adipisci neque
molestias illum debitis. Aliquam, assumenda? Quisquam commodi consequuntur pariatur reprehenderit minus
harum sunt labore accusantium quibusdam! Aliquid iusto quaerat architecto culpa aliquam mollitia
pariatur, assumenda nostrum suscipit fugit modi perspiciatis beatae accusantium quis voluptatum, alias
explicabo unde.
</div>
<div id="contentPortfolio">
Here are my projects.
</div>
<div id="contentResume">
My work experience.
</div>
<div a id="contentContact">
My email.
</div>
<div a id="contentBlog">
Here are blog post listings
</div>
</main>
<footer>
© all rights reserved
<div id="nav2" class="nav">
[terms]
[privacy]
[disclaimer]
[webmaster]
</div>
</footer>
</div>
</body>
</html>
CSS:
#content-wrapper {
margin-right: auto;
margin-left: auto;
max-width: 960px;
text-align: justify;
align-content: center;
}
header {
left: 0;
right: 0;
margin: 0 auto;
position: sticky;
text-align: center;
top: 0;
background: white;
padding-bottom: 1rem;
display: block;
}
main {
display: block;
padding-top: 1rem;
}
#contentAbout, #contentPortfolio, #contentResume, #contentContact, #contentBlog {
display: none;
}
footer {
left: 0;
right: 0;
bottom: 0;
position: fixed;
text-align: center;
background: white;
padding-bottom: 1rem;
display: block;
}
Javascript:
function contentAbout() {
if (document.getElementById("btnAbout").click) {
document.getElementById('contentHeading').innerHTML = "About";
document.getElementById('contentAbout').style.display = "block";
document.getElementById('contentPortfolio').style.display = "none";
document.getElementById('contentResume').style.display = "none";
document.getElementById('contentContact').style.display = "none";
document.getElementById('contentBlog').style.display = "none";
}
}
function contentPortfolio() {
if (document.getElementById("btnPortfolio").click) {
document.getElementById('contentHeading').innerHTML = "Portfolio";
document.getElementById('contentPortfolio').style.display = "block";
document.getElementById('contentAbout').style.display = "none";
document.getElementById('contentResume').style.display = "none";
document.getElementById('contentContact').style.display = "none";
document.getElementById('contentBlog').style.display = "none";
}
}
function contentResume() {
if (document.getElementById("btnResume").click) {
document.getElementById('contentHeading').innerHTML = "Resume";
document.getElementById('contentResume').style.display = "block";
document.getElementById('contentAbout').style.display = "none";
document.getElementById('contentPortfolio').style.display = "none";
document.getElementById('contentContact').style.display = "none";
document.getElementById('contentBlog').style.display = "none";
}
}
function contentContact() {
if (document.getElementById("btnContact").click) {
document.getElementById('contentHeading').innerHTML = "Contact";
document.getElementById('contentContact').style.display = "block";
document.getElementById('contentAbout').style.display = "none";
document.getElementById('contentPortfolio').style.display = "none";
document.getElementById('contentResume').style.display = "none";
document.getElementById('contentBlog').style.display = "none";
}
}
function contentBlog() {
if (document.getElementById("btnBlog").click) {
document.getElementById('contentHeading').innerHTML = "Blog";
document.getElementById('contentBlog').style.display = "block";
document.getElementById('contentAbout').style.display = "none";
document.getElementById('contentPortfolio').style.display = "none";
document.getElementById('contentResume').style.display = "none";
document.getElementById('contentContact').style.display = "none";
}
}
I saw that when I scroll the content of a div & then change the tabs the content of a div is hidden because window was scrolled to a position & the scroll position of window remained same even when I changed the tabs so the content appeared to be partially hidden.
to fix that you can add this in all the functions you call on clicking the buttons :
window.scroll({
top: 0,
left: 0,
behavior: "smooth"
});
for example :
function contentAbout() {
if (document.getElementById("btnAbout").click) {
document.getElementById("contentHeading").innerHTML = "About";
document.getElementById("contentAbout").style.display = "block";
document.getElementById("contentPortfolio").style.display = "none";
document.getElementById("contentResume").style.display = "none";
document.getElementById("contentContact").style.display = "none";
document.getElementById("contentBlog").style.display = "none";
window.scroll({
top: 0,
left: 0,
behavior: "smooth"
});
}
}
Just a opinion :
Instead of calling different functions when you click those buttons , you can make 1 function like this :
function tabChange(value) {
switch (value) {
case "about":
document.getElementById("contentHeading").innerHTML = "About";
document.getElementById("contentAbout").style.display = "block";
document.getElementById("contentPortfolio").style.display = "none";
document.getElementById("contentResume").style.display = "none";
document.getElementById("contentContact").style.display = "none";
document.getElementById("contentBlog").style.display = "none";
break;
case "portfolio":
document.getElementById("contentHeading").innerHTML = "Portfolio";
document.getElementById("contentPortfolio").style.display = "block";
document.getElementById("contentAbout").style.display = "none";
document.getElementById("contentResume").style.display = "none";
document.getElementById("contentContact").style.display = "none";
document.getElementById("contentBlog").style.display = "none";
break;
case "contact":
document.getElementById("contentHeading").innerHTML = "Contact";
document.getElementById("contentContact").style.display = "block";
document.getElementById("contentAbout").style.display = "none";
document.getElementById("contentPortfolio").style.display = "none";
document.getElementById("contentResume").style.display = "none";
document.getElementById("contentBlog").style.display = "none";
break;
case "resume":
document.getElementById("contentHeading").innerHTML = "Resume";
document.getElementById("contentResume").style.display = "block";
document.getElementById("contentAbout").style.display = "none";
document.getElementById("contentPortfolio").style.display = "none";
document.getElementById("contentContact").style.display = "none";
document.getElementById("contentBlog").style.display = "none";
break;
case "blog":
document.getElementById("contentHeading").innerHTML = "Blog";
document.getElementById("contentBlog").style.display = "block";
document.getElementById("contentAbout").style.display = "none";
document.getElementById("contentPortfolio").style.display = "none";
document.getElementById("contentResume").style.display = "none";
document.getElementById("contentContact").style.display = "none";
break;
default:
break;
}
window.scroll({
top: 0,
left: 0,
behavior: "smooth"
});
}
& then on the html do like this :
<input type="button" id="btnAbout" name="btnNav" value="about" onclick="tabChange('about')" />
<input type="button" id="btnPortfolio" name="btnNav" value="portfolio" onclick="tabChange('portfolio')" />
<input type="button" id="btnResume" name="btnNav" value="resume" onclick="tabChange('resume');" />
<input type="button" id="btnContact" name="btnNav" value="contact" onclick="tabChange('contact');" />
<input type="button" id="btnBlog" name="btnNav" value="blog" onclick="tabChange('blog');" />
Hope this helps 🤞 Codepen link

Javascript fixed menu scroll glitch

var navbar = document.getElementById("navbar");
let sticky = false;
const threshold = 150;
window.onscroll = function myFunction() {
if (!sticky && window.pageYOffset >= threshold) {
navbar.classList.add("sticky");
sticky = true;
} else if (sticky && window.pageYOffset < threshold) {
navbar.classList.remove("sticky");
sticky = false;
}
}
#navbar {
overflow: hidden;
background-color: #333;
}
#navbar a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.sticky {
position: fixed;
top: 0;
width: 100%;
background-color:green !important;
}
<div id="navbar">
<a>Home</a>
<a>News</a>
<a>Contact</a>
</div>
<div class="content">
<h3>Sticky Navigation Example</h3>
<p>"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.""At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem
I get an error when I scroll the page.
I tried everything about this problem but couldn't figure it out. How can fix it. Thank you.
Note: I don't want to do it with jquery.
jsfiddle: https://jsfiddle.net/gvc2xzaf/
You are constantly toggling your class on each scroll event and this is creating the flicker effect.
You must keep track of the state of your header using a variable, here called sticky.
To add your sticky class, you need your variable to be false (header not sticky) and the page offset to be above a threshold.
On the contrary, your remove your sticky class only when the variable is true (header sticky) and the page offset is below the threshold.
var navbar = document.getElementById("navbar");
let sticky = false;
const threshold = 150;
window.onscroll = function myFunction() {
if (!sticky && window.pageYOffset >= threshold) {
navbar.classList.add("sticky");
sticky = true;
} else if (sticky && window.pageYOffset < threshold) {
navbar.classList.remove("sticky");
sticky = false;
}
}
#navbar {
overflow: hidden;
background-color: #333;
}
#navbar a {
float: left;
display: block;
color: #f2f2f2;
text-align: center;
padding: 14px 16px;
text-decoration: none;
font-size: 17px;
}
.sticky {
position: fixed;
top: 0;
width: 100%;
background-color:green !important;
}
<div id="navbar">
<a>Home</a>
<a>News</a>
<a>Contact</a>
</div>
<div class="content">
<h3>Sticky Navigation Example</h3>
<p>"At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.""At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.""At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.""At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.""At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.""At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem
</div>

how to position content to move to top of active accordion when opened so user doesn't have to scroll

Cannot get the content to open at the top of the active accordion when opened. I am trying to improve ux and ensure that the user doesnt have to scroll to view content. As it stands the content is out of view when accordion is opened, and the user has to either scroll up or down depending on which is clicked. Ideally, i would like to ensure that the content for the active window is always presented at the top.
$(document).ready(function() {
$('.accordian-content').hide();
$('.accordian-title').click(function() {
const flag = $(this).find('.accordian-title-icon').hasClass('accordian-title-icon-open');
$('.accordian-title-icon').removeClass('accordian-title-icon-open');
$('.accordian-content').not($(this).next('.accordian-content')).slideUp();
$(this).next('.accordian-content').slideToggle();
if(!flag) {
$(this).find('.accordian-title-icon').addClass('accordian-title-icon-open')
} else {
$(this).find('.accordian-title-icon').removeClass('accordian-title-icon-open')
}
});
});
.accordian {
display: block;
width: 100%;
margin-top: 1em;
margin-bottom: 1em;
border-top: 1px solid black;
border-right: 1px solid black;
border-left: 1px solid black;
}
.accordian .accordian-item .accordian-title {
font-size: 22px;
border-bottom: 1px solid black;
padding: 0.5em 1em;
cursor: pointer;
font-weight: 700;
}
.accordian .accordian-item .accordian-title .accordian-title-icon {
background: lightblue;
border-radius: 50%;
width: 25px;
height: 25px;
display: inline-block;
text-align: center;
color: white;
font-weight: 700;
margin-right: 1em;
padding: 0 0 0 1px;
position: relative;
vertical-align: top;
}
.accordian .accordian-item .accordian-title .accordian-title-icon:before {
content: '+';
display: block;
position: absolute;
text-align: center;
width: 100%;
margin: -1px;
}
.accordian .accordian-item .accordian-title .accordian-title-icon-open:before {
display: none;
}
.accordian .accordian-item .accordian-title .accordian-title-icon-open:after {
content: '-';
margin-top: -2px;
margin-left: -1px;
display: block;
position: absolute;
text-align: center;
width: 100%;
}
.accordian .accordian-item:first-of-type .accordian-title {
border-top: none;
}
.accordian .accordian-item .accordian-content {
display: none;
padding: 0.5em 1em;
border-bottom: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<div class="accordian">
<a class="accordian-item">
<div class="accordian-title"><span class="accordian-title-icon"></span>Item One</div>
<div class="accordian-content">
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
</div>
</a>
<a class="accordian-item">
<div class="accordian-title"><span class="accordian-title-icon"></span>Item Two</div>
<div class="accordian-content">
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
</div>
</a>
</div>
You can get the position of the accordion-item when this is collapsed and scroll to that position, something like:
var self = $(this);
$(this).next('.accordian-content').slideToggle('slow', function(){
var position = self.offset();
$('body').animate({scrollTop: position.top }, 500, 'swing');
});
this must be done when the slide has ended up.
here idea working: https://jsfiddle.net/mvrkb1ba/4/
Wait for toggle animation to finish, than Scroll to the current HTMLelement using .animate() with scrollTop attribute.
See below working fiddle :
$(document).ready(function() {
$('.accordian-content').hide();
$('.accordian-title').click(function() {
const flag = $(this).find('.accordian-title-icon').hasClass('accordian-title-icon-open');
$('.accordian-title-icon').removeClass('accordian-title-icon-open');
$('.accordian-content').not($(this).next('.accordian-content')).slideUp();
$(this).next('.accordian-content').slideToggle();
if(!flag) {
$(this).find('.accordian-title-icon').addClass('accordian-title-icon-open')
//Add this code
thisE = $(this)
setTimeout(function(){
$('html, body').animate({
scrollTop: thisE.offset().top//scrollPos
}, 200);//Scroll Animation Duration
},450)//Wait for toggle animation to finish
} else {
$(this).find('.accordian-title-icon').removeClass('accordian-title-icon-open')
}
});
});
.accordian {
display: block;
width: 100%;
margin-top: 1em;
margin-bottom: 1em;
border-top: 1px solid black;
border-right: 1px solid black;
border-left: 1px solid black;
}
.accordian .accordian-item .accordian-title {
font-size: 22px;
border-bottom: 1px solid black;
padding: 0.5em 1em;
cursor: pointer;
font-weight: 700;
}
.accordian .accordian-item .accordian-title .accordian-title-icon {
background: lightblue;
border-radius: 50%;
width: 25px;
height: 25px;
display: inline-block;
text-align: center;
color: white;
font-weight: 700;
margin-right: 1em;
padding: 0 0 0 1px;
position: relative;
vertical-align: top;
}
.accordian .accordian-item .accordian-title .accordian-title-icon:before {
content: '+';
display: block;
position: absolute;
text-align: center;
width: 100%;
margin: -1px;
}
.accordian .accordian-item .accordian-title .accordian-title-icon-open:before {
display: none;
}
.accordian .accordian-item .accordian-title .accordian-title-icon-open:after {
content: '-';
margin-top: -2px;
margin-left: -1px;
display: block;
position: absolute;
text-align: center;
width: 100%;
}
.accordian .accordian-item:first-of-type .accordian-title {
border-top: none;
}
.accordian .accordian-item .accordian-content {
display: none;
padding: 0.5em 1em;
border-bottom: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<div class="accordian">
<a class="accordian-item">
<div class="accordian-title"><span class="accordian-title-icon"></span>Item One</div>
<div class="accordian-content">
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
</div>
</a>
<a class="accordian-item">
<div class="accordian-title"><span class="accordian-title-icon"></span>Item Two</div>
<div class="accordian-content">
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
</div>
</a>
<a class="accordian-item">
<div class="accordian-title"><span class="accordian-title-icon"></span>Item One</div>
<div class="accordian-content">
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
</div>
</a>
<a class="accordian-item">
<div class="accordian-title"><span class="accordian-title-icon"></span>Item Two</div>
<div class="accordian-content">
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
</div>
</a>
<a class="accordian-item">
<div class="accordian-title"><span class="accordian-title-icon"></span>Item One</div>
<div class="accordian-content">
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
</div>
</a>
<a class="accordian-item">
<div class="accordian-title"><span class="accordian-title-icon"></span>Item Two</div>
<div class="accordian-content">
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
</div>
</a>
<a class="accordian-item">
<div class="accordian-title"><span class="accordian-title-icon"></span>Item One</div>
<div class="accordian-content">
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
</div>
</a>
<a class="accordian-item">
<div class="accordian-title"><span class="accordian-title-icon"></span>Item Two</div>
<div class="accordian-content">
<p>At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.</p>
</div>
</a>
</div>

Categories

Resources