Javascript fixed menu scroll glitch - javascript

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>

Related

How to make a moving block (part of the site) and fix

var outBlockBtn = document.querySelector('.out-block__btn');
var outBlock = document.querySelector('.out-block');
var header = document.getElementById('header');
outBlockBtn.addEventListener('click', function() {
outBlock.classList.toggle('_show');
})
if (outBlock.classList.contains('_show')) {
header.style.marginBottom = '58px';
} else {
header.style.marginBottom = '32px';
}
header {
position: relative;
z-index: 1;
height: 100px;
background: grey;
}
.out-block {
display: flex;
flex-direction: column;
align-items: center;
padding: 100px 0 10px;
transform: translateY(-100%);
transition: all 500ms cubic-bezier(0.25, 0.25, 0.75, 0.75);
transition-timing-function: cubic-bezier(0.25, 0.25, 0.75, 0.75);
}
.out-block._show {
background: green;
transform: translateY(0);
}
.out-block__content {
display: flex;
flex-direction: column;
align-items: center;
}
.out-block__content span {
display: inline-block;
padding: 0 0 200px;
}
.features {
background: yellow;
padding: 200px 0;
}
.out-block__btn {
width: 100px;
height: 20px;
background: red;
}
<div class="wrapper" id="wrapper">
<header class="header _lp" id="header">
</header>
<main class="page" id="main">
<section class="out-block">
<div class="out-block__show">
<div class="out-block__overflow">
<div class="out-block__container">
<div class="out-block__content">
<p>
rum, voluptates, iure voluptatibus consectetur tempora enim possimus
animi impedit, dolor asperiores aperiam mollitia consequuntur porro ipsum eveniet! Architecto adipisci, vel officia tenetur, minima repellendus distinctio tempore unde explicabo iure quam facere cum error ad! Veniam, ducimus sit ratione
facilis incidunt corrupti modi totam exercitationem laudantium sed a voluptatem, animi accusantium. Dolorum doloremque, recusandae tempore obcaecati neque qui illum ex fugit temporibus. Quam incidunt vero placeat maxime, fugit aspernatur
saepe molestias velit quos asperiores nemo. Assumenda tempore, eligendi tenetur totam numquam a qui voluptatem quam ratione natus tempora iure quia praesentium? Qui aliquam ducimus quo harum praesentium dicta, porro magni, autem, omnis
ratione enim! Quas at ipsa ipsum nam quisquam eligendi aliquid itaque est aspernatur aperiam? Dolore fugit sunt voluptatum ipsa, ea quia corrupti hic amet dolor sed, nam fugiat consequatur saepe error culpa laborum rerum? Iusto eius distinctio
ipsa et, eos eligendi, reiciendis magnam doloribus consectetur doloremque optio deserunt beatae aut sed nisi fugit sit ex nihil non itaque. Sint porro sapiente dolorem suscipit eius amet debitis pariatur error asperiores dolor fugit excepturi
quae ea ab eligendi deleniti unde voluptate obcaecati cumque, commodi est, nulla quod? Explicabo corporis at numquam illo laboriosam ut vero aspernatur amet non! Dolores eius temporibus accusamus, quas perspiciatis hic eum provident, aliquid
voluptas, totam cupiditate distinctio a similique ipsam eaque laborum odio voluptatem quis quam esse? Accusantium earum cumque reiciendis quidem modi dolores expedita dolorum harum voluptatum at error, fugiat est, qui, veritatis pariatur!
Doloribus aspernatur repellat rerum recusandae animi, mollitia cupiditate voluptates vero quia in minima adipisci voluptatem! Nisi, omnis maiores voluptatibus quis optio nostrum sunt rerum, consequuntur reiciendis porro suscipit ea harum
fugit laborum unde? Quis quas doloribus ipsam recusandae expedita illum vitae adipisci soluta quisquam ipsum atque consequatur laudantium nostrum itaque at dignissimos non ut debitis totam, iure enim laboriosam? Doloribus, eius nemo deserunt
alias esse, omnis aliquid eos labore quod assumenda corrupti dolorem vel qui. Vitae mollitia iure dolorem vel ab voluptate iusto, reiciendis possimus necessitatibus libero itaque tempore veritatis, minus soluta cum atque. Eaque corporis
quasi perferendis tempore. Sapiente dolores excepturi reprehenderit, nobis voluptates fugit ipsam culpa similique possimus illum, provident optio, beatae pariatur quasi. Veritatis enim a inventore exercitationem saepe, qui placeat rem
consequuntur, tempore, nihil sit laudantium molestias. Consectetur non, adipisci doloremque quaerat a ea optio molestias in animi facere corporis natus quisquam architecto amet id reprehenderit deserunt fugiat magni sapiente. Molestiae
quam soluta dicta culpa ea ipsum consequuntur hic aut dolor sed veniam temporibus, laborum reprehenderit libero, repudiandae iure, expedita ab commodi cumque? Quia repudiandae, error minus dignissimos omnis in accusantium quod. Autem qui
laboriosam ducimus id, officiis nulla alias iste deserunt illum veniam consequuntur iusto expedita asperiores ipsam, aliquam quisquam voluptates. Cum reprehenderit odit nemo, doloremque numquam quos eum cumque ab officia ipsam doloribus
consequuntur fugit quaerat beatae fuga quod. Aliquam minus assumenda nobis laborum necessitatibus quibusdam rerum! Reiciendis reprehenderit, aperiam blanditiis porro et voluptatem dolor quam consequuntur dolore veniam ad, quod recusandae
commodi. Ut exercitationem maiores sit ratione iure ad, impedit aliquid mollitia consequatur, architecto esse obcaecati necessitatibus tenetur sapiente nam, odit dolor atque? Repellat veritatis distinctio deleniti. Ab dolores veniam, cupiditate,
distinctio molestiae laborum similique architecto modi a harum nam sed unde explicabo, voluptate voluptates officiis blanditiis itaque at maiores atque alias voluptatibus. Excepturi sequi dolorum asperiores quod eaque perspiciatis non,
temporibus voluptatum nobis dolor ratione nemo, hic beatae delectus? Nam id earum eum ab voluptatibus soluta nostrum, perferendis eius quis fuga, quidem autem dolores ratione iste ea nisi neque commodi illum fugit vitae reprehenderit.
Sit dolor nam blanditiis tempore praesentium repellendus esse. Ad ipsam saepe aspernatur vitae totam aliquid harum iure veritatis consequuntur tempora laboriosam voluptatibus dolorum sit corporis quos vel inventore repudiandae ullam illo,
porro nam, cum assumenda? Voluptatibus eum, at incidunt minus dolorem nesciunt facilis libero est laborum voluptatem delectus excepturi sapiente earum quos pariatur amet? Voluptas, dicta a cumque, nulla saepe qui tenetur quis quos quae
inventore minus amet deserunt debitis accusantium magnam facilis? Facilis exercitationem reiciendis consequatur officia veritatis! Rerum illo labore consequuntur animi. Impedit assumenda perferendis optio rem explicabo a nesciunt repudiandae
tenetur dignissimos sapiente, maxime dicta. Quis, sint dolor consequuntur eveniet, sit cum eum sapiente nobis voluptate labore fuga quam repudiandae alias ipsam saepe et ea. Explicabo sapiente illo ea at maxime quibusdam accusamus officiis
consectetur hic aut, eveniet tenetur voluptatum itaque, iste, obcaecati sed perspiciatis ducimus fugit sit doloribus quaerat laboriosam? Odio quisquam id perspiciatis reprehenderit quam minima, distinctio obcaecati. Doloremque omnis incidunt
corrupti maiores totam iure odit debitis praesentium aspernatur aliquam? Doloremque ab delectus at. Quod, voluptate. Repudiandae, nemo aspernatur? Adipisci ea eveniet dolorem harum distinctio est dolore suscipit, nulla quaerat atque omnis
illum magnam quidem consectetur odio nemo repudiandae nam soluta aliquam esse dignissimos facilis cupiditate. Est, cumque! Inventore ea est vitae voluptates esse, dolorem reiciendis obcaecati, facere officiis eligendi odio maiores. Eaque
ut eum qui alias tempora reprehenderit molestiae nesciunt ab laudantium neque at fugiat dolores hic aliquam possimus, sed voluptates sint asperiores consectetur quos! Reiciendis, quisquam at. Nihil incidunt vel praesentium, cupiditate,
delectus quo maiores excepturi alias corrupti neque dignissimos exercitationem eveniet beatae veniam provident vitae esse harum, magni voluptates. Voluptate quo a iusto, omnis quod eveniet iste labore voluptates facere dolorum, architecto
eum repellat! Maiores libero similique in. Veritatis, nesciunt. A dignissimos exercitationem accusamus, praesentium possimus sapiente ipsum explicabo illo aperiam consectetur cupiditate ea dolorum placeat ipsam quae vero voluptatum dolorem,
officia ab eligendi, tempore quod quas quisquam? At rerum minima, aspernatur quibusdam ipsa atque. Sunt ipsam omnis quibusdam? Voluptatibus mollitia dicta voluptas? Velit, nesciunt veniam dicta, pariatur minus possimus quasi nemo in perferendis
omnis, iure quaerat hic! Eveniet tenetur asperiores ipsum dolores quam aperiam, dolore ab officia officiis quibusdam nemo et animi vero perferendis sunt exercitationem amet eligendi illo minima iure! Quos vitae fuga, voluptate sequi ratione
recusandae, maxime animi sunt officia esse tempore ab maiores dolore, doloremque ipsum eveniet nihil dignissimos. Animi ducimus eligendi deleniti eveniet beatae exercitationem iure laborum est recusandae enim sit ullam possimus omnis consectetur
ipsum architecto, harum saepe accusamus deserunt dolorum pariatur? Vel ex mollitia sunt molestiae vitae culpa nobis, quia beatae, accusantium impedit possimus, natus quo ipsum vero libero placeat voluptatibus esse ab ipsam itaque minus
pariatur tempore quidem. Tempore, blanditiis a ad fugit ex iure ut consequuntur quaerat, qui dolores, dicta animi molestias. Reprehenderit facere tempore doloremque asperiores sunt, deserunt molestias minima eligendi similique doloribus.
Suscipit hic harum quas error! Quidem id possimus fugiat ullam sit maxime natus architecto fuga nostrum expedita ab, repellendus ipsam magni suscipit modi debitis officia perspiciatis, beatae et cumque nulla. Maiores cumque velit hic quam
nam delectus vero, magnam repellendus quod impedit a voluptatum voluptates architecto quidem ratione dolores commodi labore, ipsa fugit molestias facere sunt. Ea maiores excepturi doloribus animi id minus debitis veniam aperiam impedit.
Adipisci, voluptas magnam. Nulla reprehenderit deleniti magnam, dolores sunt ullam dolore, commodi facilis ut ex eveniet voluptatem molestias quis blanditiis, similique ab maxime consectetur sequi! Est ducimus eveniet consequuntur, optio
modi numquam fugiat et blanditiis dicta quae pariatur veritatis, ex ratione itaque officiis ab magnam iure consectetur voluptates saepe ad eligendi reiciendis assumenda? Sunt dolore quos, molestias est ratione nulla deserunt officia ex
voluptatum, quis at soluta repudiandae dolor qui accusamus iste nobis ipsum eaque voluptates, illo id libero cupiditate. Eaque aut quidem natus facere ullam quasi tenetur omnis repellendus quia recusandae, harum quo veniam, ipsa velit
optio ipsam provident, magni obcaecati deserunt dolor reprehenderit architecto qui. Eaque dolores ab quis minima minus facere eligendi unde obcaecati perspiciatis inventore! Eveniet officia beatae corrupti voluptates, reiciendis provident
nam repellat aliquam molestiae doloremque placeat nobis pariatur repudiandae! Exercitationem error, quos sequi aspernatur iure illo labore odit necessitatibus! Ipsam minima reprehenderit repellendus accusamus dolor consectetur vero eaque
illo cum voluptatibus officia aliquam nemo praesentium dolore, quae perferendis doloribus rem recusandae esse voluptatum corrupti inventore aut! Optio alias saepe nisi nostrum! Consequuntur labore exercitationem minima, soluta blanditiis
quas explicabo fugiat ad corporis. Soluta architecto odit nihil nostrum harum amet sapiente quis ex quos molestias ducimus ipsa nisi doloremque, illo non fugit repellendus fugiat laborum minus. Officia, repudiandae cupiditate! Nisi quam
a magni quidem ea, cumque voluptates maxime, necessitatibus id odit aperiam obcaecati distinctio molestias facere voluptas animi cupiditate officia perferendis in autem quibusdam porro repudiandae eum pariatur? Debitis, dolor culpa vero
beatae eius ullam architecto placeat iste tempore voluptatem sapiente aperiam praesentium eos soluta dolores veniam rem consequatur numquam neque recusandae corrupti? Deserunt aliquid adipisci, iure perspiciatis facere incidunt harum aspernatur
cupiditate ab reprehenderit ea ut similique et, quia tempora nostrum fugiat atque amet minus. Omnis quasi sed illum aliquam excepturi quae magni incidunt, corporis repellat saepe? Fugiat atque nam possimus aut iusto maxime saepe quae iure
expedita! Commodi praesentium dolores temporibus molestiae consequuntur quis, eaque obcaecati officiis maxime voluptate optio asperiores fuga consequatur dolorem ea laudantium dolor nemo possimus fugit beatae fugiat libero voluptatibus?
Dolorem, unde eaque et ipsum quasi quo repellendus pariatur corporis eum saepe qui quisquam amet, vitae consectetur, tenetur veritatis? Explicabo tempore quidem eius, molestias aspernatur mollitia quas amet dolor id rem totam dolorum ut
reprehenderit, aut, sunt a rerum excepturi perspiciatis consectetur qui iste magni libero? Maiores quasi harum nostrum, ea voluptatem ab? Est quisquam cupiditate excepturi alias enim nostrum facere sit illum dolorum. Incidunt quia molestias
soluta voluptatem doloribus non molestiae nihil distinctio ratione. Repudiandae totam amet unde dolore? Architecto soluta saepe iste atque explicabo necessitatibus amet perspiciatis unde, earum dolor quasi aliquid doloribus esse eius molestias
cumque veniam voluptate, cum fugiat. Sint deserunt harum voluptatum delectus quis, doloribus illum at odit dicta, fugiat sequi, quidem quasi! Delectus nihil nesciunt officiis, animi possimus maxime similique, cumque sed necessitatibus
mollitia quisquam. Quaerat, placeat. Dolorem quis delectus, quia accusamus impedit ab, voluptatibus ad recusandae sint dolore, aliquid mollitia beatae modi? Maxime porro magni perspiciatis magnam quam nihil quod fuga expedita, pariatur
ut unde optio molestiae fugiat autem voluptas tempora, earum itaque labore, hic quibusdam libero ratione culpa. Magnam consequuntur provident harum aspernatur obcaecati alias, quaerat cum iusto libero quod sapiente eos sint nisi nobis
dolorum similique ad incidunt reprehenderit ratione laudantium? Quia cum accusantium tenetur accusamus incidunt deserunt soluta nostrum, pariatur vitae quasi delectus porro facilis amet quam reiciendis placeat ipsum necessitatibus earum?
Voluptatum, corrupti tenetur! Consectetur delectus eaque velit. Minus voluptates itaque quam, eum porro quasi quos veniam amet vitae omnis voluptate, consequuntur sequi est optio? Blanditiis quis magni quos id aperiam pariatur non porro
aliquam ea est. Autem nihil, optio minus cupiditate veniam laborum, ratione necessitatibus atque officia velit delectus! Nam minima est nemo placeat ad sit at nobis ratione soluta! Sit tenetur sint dicta excepturi ut perspiciatis voluptatibus.
Praesentium consequatur ullam nam voluptatibus rerum inventore, placeat soluta enim magni libero repellendus, ab laudantium dicta hic. Blanditiis omnis, nihil animi dolorum magni similique esse ipsum recusandae perspiciatis est maiores,
soluta culpa autem nulla! Consequatur eligendi debitis quaerat enim corrupti cum quia rem quod assumenda reprehenderit, dolore blanditiis sed atque, perspiciatis eos dolores voluptates explicabo esse iusto officia doloribus ipsa. Deserunt
minima provident voluptatibus aspernatur porro, sint pariatur consequatur quis facere. Perferendis quasi, ad ducimus maiores facilis aliquam odio officia inventore. Debitis, non! Saepe, necessitatibus ab. Magnam quisquam recusandae, laudantium
repellat temporibus saepe neque deserunt! Ducimus corrupti magnam nesciunt doloremque ad pariatur porro dignissimos optio! Earum quam veritatis est eveniet optio minima odio eaque porro nulla similique in assumenda nihil delectus quae
esse, illo incidunt sequi, temporibus perspiciatis explicabo, eum ex dolorem! Corporis fugit saepe asperiores hic harum. Delectus laboriosam cupiditate voluptatibus ipsam, ipsa dolores voluptate sequi officiis modi architecto molestiae,
accusamus excepturi. Molestias perferendis at soluta repellat nostrum reprehenderit similique nisi, laboriosam rerum libero voluptatem minus minima necessitatibus obcaecati nam cum fugit accusamus sint praesentium quo mollitia quasi. Atque
repellendus, iure ratione quis rerum facilis culpa libero! Voluptatem labore accusamus inventore distinctio dolore soluta repudiandae autem est eaque earum, cupiditate asperiores tenetur qui nostrum nulla a ex tempore accusantium expedita
et reiciendis corrupti sed pariatur! Iure modi explicabo repellat consequatur! Pariatur corporis suscipit at corrupti vero quo cupiditate expedita natus molestias sed cum dignissimos voluptatem explicabo nobis ullam, voluptate facilis
repellendus quia repudiandae officiis facere perferendis exercitationem harum? Sapiente molestiae, distinctio animi minus magni ratione sequi. Hic deleniti qui ipsa atque iure. Mollitia quidem nobis fugit quis porro molestiae culpa optio
vitae quisquam architecto voluptatum, voluptates inventore magnam atque quibusdam eum! Porro totam facere ducimus rem perferendis. Error sequi quia ipsa, eligendi sed iste necessitatibus iusto culpa fuga sunt fugit esse iure earum accusamus
nihil officia velit alias? Error aspernatur, cupiditate magnam libero minima expedita ullam ducimus, temporibus, sint quas asperiores hic voluptates molestiae eos unde? Illum, libero nulla quasi iusto, deleniti consequuntur minus possimus,
ad nihil odio obcaecati doloremque. Rerum eaque pariatur molestiae, deleniti, labore doloremque alias quia asperiores odit debitis veritatis delectus rem hic, fuga nesciunt explicabo. Vero, consequatur suscipit facere tenetur officiis
a consectetur necessitatibus saepe. Veritatis temporibus vero nobis repudiandae amet voluptatem expedita adipisci sit aperiam optio harum nulla architecto, sint nostrum quo, totam inventore eveniet. Deleniti quaerat officiis esse quo odio
ab minus eius cupiditate nostrum ea rerum rem amet deserunt laboriosam iure aliquam, explicabo dignissimos dolore, natus quidem placeat. Sint quibusdam eos alias consequuntur facere assumenda, porro asperiores aliquid itaque a modi obcaecati
vitae eveniet qui nesciunt unde. Esse soluta in dolores, nihil vel perspiciatis sunt odit officia vitae saepe exercitationem facilis veniam nobis consequuntur iste non laborum adipisci quos, voluptatibus nulla? Praesentium neque, dignissimos
quasi, non enim exercitationem quibusdam nesciunt repudiandae odio placeat accusantium consectetur labore distinctio? Voluptate officiis a voluptas quos molestias cupiditate, quaerat maiores voluptates alias neque numquam labore eveniet
ex dolore quod commodi quasi rerum iure sapiente id. In, ea facilis. Tempora qui cumque dolorem incidunt possimus, autem voluptatem reiciendis, labore officia, quaerat ea neque. Nam asperiores aperiam voluptatem cum vero rerum quos natus
temporibus ut! Molestias ducimus iusto ut quo aut ab tempora necessitatibus veritatis tempore facere minus dignissimos iste corrupti at voluptas cupiditate eaque provident quae hic neque modi autem, voluptates, sequi repellendus. Earum,
eius officiis, nostrum tempora, rerum esse iusto officia itaque eveniet mollitia omnis odit eos rem fugiat? A molestiae voluptates tempora nostrum est neque, nemo voluptatem illo praesentium ea omnis voluptate vel quam, aperiam mollitia
sint eaque perspiciatis cupiditate nesciunt consequatur possimus qui rerum, facilis ducimus! Ipsa nostrum doloribus quis ut accusantium aperiam excepturi architecto similique dolores dolorum, ipsum non amet qui expedita aut modi impedit
voluptatem dolor iure alias hic laborum quos. Non impedit accusamus tenetur blanditiis saepe magni, eveniet ipsa quo ea eligendi. Facilis molestiae magni sequi culpa perferendis quibusdam tempora alias, nam eius labore id voluptatibus
saepe modi consectetur dolore libero cumque omnis et blanditiis, suscipit atque veniam aspernatur odit! Consectetur earum blanditiis vel, nobis neque laborum expedita ratione quo possimus ut architecto amet vitae cumque fugiat eveniet
deserunt temporibus mollitia perferendis, repellendus esse magnam aperiam pariatur. Omnis, necessitatibus sapiente reprehenderit pariatur facilis et placeat adipisci earum possimus? Fugit tempore excepturi delectus temporibus est, possimus
sit deleniti dolorum et ad, minus suscipit obcaecati, dicta sapiente. Rem deserunt unde eligendi consequuntur illo fuga commodi impedit, et nobis, illum voluptatum aut error aliquam nisi itaque, ex dicta est! Deserunt qui sit et, nisi
quidem officiis ratione voluptatem dolores nihil in quibusdam quas commodi cupiditate molestias temporibus eius, dolorum consectetur consequatur odio id labore possimus illo! Fugiat dolore quod at, dignissimos sequi nobis earum officia
vitae minus, soluta quaerat ab nesciunt recusandae debitis itaque nostrum explicabo harum beatae incidunt voluptas a iure non est. Eius corporis nemo ex recusandae voluptate repellendus corrupti ipsum dolorum assumenda dolorem rem, eum
pariatur? Quis officia asperiores expedita illum consequatur est facere quidem culpa libero error quo pariatur cum, neque laborum quam accusamus debitis voluptate animi! Nemo iusto similique officia modi nisi ex magni, asperiores nulla,
tempore alias distinctio dolorem. Explicabo asperiores, assumenda, corporis illum fuga optio at qui rem obcaecati beatae fugiat quam nobis molestiae voluptates distinctio tempora maiores voluptate. Praesentium quam, dolorum iusto nemo
minima, cumque alias perspiciatis inventore doloremque fugiat obcaecati reiciendis ut quia odio dignissimos consectetur. Nisi animi doloribus commodi minus, provident eum voluptas deleniti ipsa earum? Perspiciatis possimus reiciendis ea,
totam vel eum earum voluptatem animi ut exercitationem, eaque corrupti cumque, sapiente illo unde qui ex dicta fuga fugiat voluptates doloribus dolorem veritatis iure. Quidem nihil deserunt veniam nemo ex vero iusto repudiandae voluptates
repellendus! Sint, officia vitae! Debitis architecto necessitatibus tenetur pariatur placeat reiciendis fugit doloribus vero tempora inventore officiis quod dolorum deserunt repudiandae sunt, facilis corrupti cupiditate laudantium saepe
quam culpa iste soluta ipsam laboriosam? Dolor soluta tenetur iure sed. Consectetur ex facilis labore excepturi atque, beatae fuga iste illum veritatis nobis debitis accusantium modi aspernatur est provident laborum voluptatum eius, quos
corporis? Quibusdam eligendi temporibus id velit natus harum, maiores fuga necessitatibus ipsam possimus, quos optio dolor neque tempore illum nisi officia sapiente! Aut doloremque quasi velit unde, libero sequi reiciendis expedita nisi
magnam quam ipsam aperiam eius. Est eos molestias nulla, sapiente laboriosam illo consectetur fuga aliquid veritatis facere temporibus culpa dolorem laborum quisquam optio qui labore excepturi ex nobis! Modi harum quaerat soluta eveniet
necessitatibus nulla at facere. Fugit omnis, consectetur ipsum maiores tempora ut officiis in ipsam neque ratione corporis iure, sunt, eligendi iusto praesentium facilis? Voluptatum nemo quos adipisci. Dignissimos exercitationem ad tenetur
qui, cumque eligendi voluptatum rem deserunt doloribus nam eveniet quia dolorem, itaque, provident molestias? Facere incidunt consequuntur molestias distinctio! Qui, aperiam. Itaque autem odit labore, consequuntur sed voluptate eius repudiandae
id, voluptatum consectetur neque velit delectus vel iusto nobis, totam facilis aspernatur ratione inventore dolor laborum rerum omnis non laudantium. Ab excepturi mollitia, illo id est ratione voluptatem perferendis. Accusamus inventore
perferendis possimus labore. Vero unde placeat quaerat amet. Id iste aliquam nam sint, dolorem, dicta reprehenderit at quod iure totam earum atque. Recusandae repellendus cupiditate consequuntur? Eveniet, excepturi accusamus. Minima veritatis
aut porro natus, soluta eveniet sunt harum, totam repellendus quibusdam enim, iure fuga saepe. Beatae ullam repellendus aut consequatur reprehenderit doloremque eius mollitia laboriosam commodi? Quam dicta officia doloremque repudiandae,
animi illum dignissimos harum beatae quas impedit corporis quisquam temporibus assumenda architecto nostrum nisi voluptatibus obcaecati suscipit. Quibusdam dolore, delectus excepturi dolores quo dolor enim, nisi exercitationem doloremque
ratione eos omnis minima accusamus non voluptatibus ex modi, inventore pariatur iste. Repellendus porro amet vero consequuntur dolorem cum obcaecati. Reprehenderit recusandae at quod ab, illum repellat praesentium laboriosam necessitatibus
alias debitis deleniti harum sapiente. Aut pariatur nisi quas distinctio, soluta inventore praesentium voluptas voluptatibus totam veniam corrupti rerum, ad sapiente maiores. Dicta tempora itaque voluptas obcaecati. Saepe molestias ipsum
expedita corrupti impedit inventore aperiam asperiores pariatur similique voluptatibus tempora doloribus delectus, voluptatum provident, quod cupiditate? Libero hic eius ex error nisi qui sint eum aliquid perferendis quae similique ipsa
velit aspernatur illo labore autem omnis fugit quaerat recusandae dolor dolore, voluptatum iusto expedita. Consectetur impedit obcaecati mollitia consequuntur possimus a ad deleniti esse placeat vero quo quisquam amet repellat, illo in!
Voluptatibus, aut? Nobis, ea illum. Soluta sint, vel possimus odio nostrum exercitationem illum, ea autem quia placeat corrupti numquam ratione, assumenda quisquam ab iusto fugiat maxime delectus debitis ut laborum? Dolores optio nostrum
ipsum ad. Similique unde quis molestiae molestias dolorem? Aspernatur quos ullam commodi asperiores non adipisci. Ad culpa ipsum distinctio temporibus? Error aperiam doloremque repudiandae. Officia, distinctio? Unde molestias officiis,
repellendus illum, totam veniam enim minus sint repudiandae odio quidem, odit voluptatum ipsa accusamus dolores ducimus. Quidem dolores non minus adipisci soluta, eos saepe quae voluptatem repellendus. Nobis ipsum optio voluptas. Doloremque
atque tempore, praesentium at natus aperiam dolorem aut placeat! Mollitia odio explicabo molestias, qui quo nulla ipsam temporibus voluptas omnis odit voluptates?</p>
<span></span>
<button class="out-block__btn" type="button">
</button>
</div>
</div>
</div>
</div>
</section>
<section class="features">
<div class="features__container">
<div class="features__content">
</div>
</div>
</section>
</main>
<footer class="footer" id="footer">
<div class="footer__container">
<div class="footer__content"></div>
</div>
</footer>
Gentlemen, help me figure it out!!! It is necessary that a modal window type block appears on click, but the bottom line is that this modal window should, as it were, shift the content down and fix itself so that the rest of the content cannot be seen only what is in the modal window. If you click the modal goes up and the content follows it and already in this state everything will scroll further. I hope it's clear)) P.S. When the green window is active, it should be fixed and scroll only inside this window.
[enter image description here](https://i.stack.imgur.com/kej8L.png)
I want the green block to be at the top at the start and when the user pressed the button, it shifted down along with the yellow one. When the green one is open it is fixed together with the cap.
I tried using height and position fixed it looked really bad

Calling e.preventDefault() Stops TouchEvents from Scrolling Page, but any Additional Click Listeners Don't Fire

I have a tab that slides up and it can be closed with user based touch events for mobile devices. I got this sliding tab/modal to work well and it is a piece of code that is dynamically appended to the DOM.
Once this code is dynamically appended to the DOM, I also dynamically add certain event listeners. I got super stuck when I realized that my click event listener wasn't firing.
It got even more confusing when I noticed I could use .click() on the target element and it would fire but clicking on it would not work.
I figured out why this happened and it turns out that calling e.preventDefault() inside of my click event listeners was causing my click event not to work.
I am stuck on how to move forward here because e.preventDefault() keeps my page from scrolling when the tab is being swiped, but it is causing other events not to fire that are dynamically added inside of the tab.
1.) Setting passive to true stops e.preventDefault from being called and without e.preventDefault(), whole page scrolls. Is there a way to stop page from scrolling without calling e.preventDefault()?
2.) Why does e.preventDefault stop inner click event from running?
3.) Why does click() work still?
4.) How could this be better written that the page doesnt scroll and events can be dynamically added?
Here is a runnable example:
https://stackblitz.com/edit/js-uruonq?file=index.js
function openTab(config) {
const { onRender } = config
document.querySelector('#main').insertAdjacentHTML('beforeend', `
<div class="swipe-tab">
<div class="swipe-tab__content></div>
</div>
`)
const swipeTab = document.querySelector('.swipe-tab')
/**
* just assume these functions make the tab follow
* the users finger
*/
swipeTab.addEventListener('touchstart', e => {
e.preventDefault()
})
swipeTab.addEventListener('touchmove', e => {
// e.preventDefault() stops the whole page from scrolling
e.preventDefault()
})
swipeTab.addEventListener('touchend', e => {
e.preventDefault()
})
if (onRender) onRender()
}
openTab({
onRender() {
document.querySelector('.swipe-tab__content').insertAdjacentHTML('beforeend', `
<button class="test-btn"></button>
`)
const btn = document.querySelector('.swipe-tab .test-btn')
btn.addEventListener('click', e => {
// this will not log. e.preventDefault() stops this from working
console.log('clicked')
})
// this still works for some reason
btn.click()
}
})
What if you use CSS to prevent the scrolling behavior? For example, you could set the body to have a position fixed.
Demo (definitely not production code)
Instructions: Scroll to the buttons, click the FIX button FIRST. The page can no longer scroll. Click the UNFIX button and the page scrolls freely again. I added lots of content in there to point out that you'd need to keep track of the current scroll position before setting the position to fixed, and restore it after.
const fix = document.getElementById('fixed');
const unfix = document.getElementById('unfixed');
const bodyEl = document.body;
const docEl = document.documentElement;
fix.addEventListener('click', (e) => {
const top = docEl.scrollTop;
bodyEl.style.top = `${top * -1}px`;
bodyEl.style.position = 'fixed';
})
unfix.addEventListener('click', (e) => {
const top = bodyEl.style.top;
const scrollTopValue = top && top !== 'auto' ? parseInt(top.match(/\d+/gi)[0]) : 0;
bodyEl.removeAttribute('style');
docEl.scrollTop = scrollTopValue;
})
body {
font-family: sans-serif;
}
button {
background: red;
color: white;
padding: 1rem;
border: 2px solid crimson;
border-radius: .25rem;
font: inherit;
}
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Esse dolorem repellendus, odit, iste labore exercitationem consequatur, placeat autem dolorum rerum voluptas possimus non laboriosam neque perferendis sequi architecto quos officiis?</p>
<p>At vel doloremque perferendis optio molestias architecto ratione laboriosam! Consequatur rem asperiores numquam quia accusamus ipsam voluptate modi? Nemo in libero dicta quisquam similique sed veniam totam labore nam delectus.</p>
<p>Minus corporis labore commodi quae saepe nobis, unde impedit est pariatur vero quos similique tenetur deleniti architecto odio veritatis dolorum nulla officia illo eos incidunt ullam! Impedit quibusdam officiis molestias!</p>
<p>Expedita similique, repellendus labore error asperiores suscipit mollitia aperiam molestias fugit nihil quae ipsa officia nemo blanditiis quidem tenetur id dolor sapiente quibusdam sit laudantium voluptatum! Similique eaque repellat iste!</p>
<p>Cumque quod unde totam neque minima nemo, similique praesentium nulla, ea voluptas accusamus at mollitia, delectus deserunt. Aspernatur deserunt laboriosam non quod eos aut, expedita veritatis, perspiciatis modi culpa rerum.</p>
<p>Nostrum soluta illum sit eveniet, consectetur dolor molestiae, culpa aspernatur labore dicta earum iste doloremque quisquam ea et laudantium optio? Eaque ratione rerum optio, quas ad dolorum ullam harum qui?</p>
<p>Nisi voluptas exercitationem eligendi temporibus, sequi tempora dolor rem, maxime dignissimos ut placeat aliquid obcaecati nobis! Eligendi recusandae tempora, a impedit magni sunt nam non, deleniti ab blanditiis consectetur consequatur.</p>
<p>Voluptatum ipsa id maxime necessitatibus distinctio delectus deserunt, nesciunt officiis fugit labore doloremque, voluptatem iusto mollitia soluta, eligendi ducimus tenetur repudiandae dolorem aspernatur corrupti velit! Sed, dolorum. Vitae, similique quos!</p>
<p>Autem id temporibus doloribus veniam, corporis at nihil consectetur ut obcaecati iusto? Illum distinctio, nisi magni itaque quidem ratione ab esse porro neque hic laboriosam a suscipit aliquid ipsam odit.</p>
<p>Dicta et ducimus est consectetur tenetur at officiis, deleniti hic porro sunt? Ipsam, sed. Ut commodi recusandae quasi quis, natus adipisci corporis exercitationem, rerum perferendis voluptatibus at voluptate. Culpa, corrupti.</p>
<p>Ut aliquam dolorum tempore, eius esse libero repudiandae amet laboriosam nihil ipsum veniam assumenda neque fugit ipsa accusantium veritatis consequuntur exercitationem, ipsam unde, ad natus. Dignissimos commodi magni aliquam ab.</p>
<p>Dolorum, dolore porro. Enim ipsum eaque iste delectus dolor sint, aperiam veritatis soluta odio a provident, exercitationem expedita est, ipsam eligendi quidem? Sequi nostrum ratione nemo necessitatibus est nesciunt nobis.</p>
<p>Rerum enim reiciendis nihil officia aut ex, recusandae exercitationem dolores eos ipsum quos vero, minus aliquam et commodi! Commodi repellat debitis expedita magnam vel odio nihil dolorum, eos eligendi recusandae?</p>
<p>Culpa quasi quaerat quia atque? Temporibus officia sint consequatur animi rerum, molestias accusamus quod veniam in numquam. Provident quasi perspiciatis quos, inventore sint eius eos voluptate dolorem suscipit enim laboriosam.</p>
<p>Consectetur atque distinctio maiores necessitatibus minima provident voluptas sequi culpa optio enim eaque, ex sunt totam. In ea sequi fuga perspiciatis recusandae, asperiores quae, sunt ab adipisci quisquam, placeat laborum.</p>
<p>Sapiente iusto, quas labore possimus et recusandae molestias explicabo illo beatae! Iste culpa nihil excepturi est ratione vel, non, libero, cumque inventore maxime labore facere iusto sequi sint quos consequatur!</p>
<p>Commodi quo, in debitis nobis eum quaerat architecto eius laboriosam eveniet dicta tempore culpa nulla soluta dignissimos ab eligendi deleniti, doloribus amet voluptatem facilis officia iure rem dolorem. Magni, obcaecati!</p>
<p>Molestias voluptatem incidunt quas molestiae debitis facere praesentium dicta dolorum unde saepe aperiam quam odit magni in, explicabo sit nesciunt soluta, commodi dolor. Quod exercitationem quidem voluptas consequuntur praesentium saepe.</p>
<p>Eos accusamus ab voluptates quidem incidunt molestiae, nam delectus tempore libero cupiditate, labore doloribus qui praesentium fuga natus ratione iusto quia minima aut! Voluptatibus ut, asperiores velit quod nihil porro.</p>
<p>Porro quidem magni earum id assumenda odio minima. Aspernatur aut dolore quidem laudantium, ipsum modi dolores odio at unde. Pariatur eos reiciendis dolores accusamus similique commodi minus laboriosam rerum ratione.</p>
<p>Magni, ex possimus, recusandae molestias totam numquam laudantium quis sed placeat quod inventore? Perferendis facere, amet dignissimos repellat officiis ea mollitia pariatur voluptates, minima, ipsa provident veritatis explicabo dolore dolorem!</p>
<p>Sed, nostrum? Quia nisi ratione quam nesciunt rem blanditiis sunt tempore deserunt quos numquam exercitationem repellat libero quae nostrum nihil repudiandae dolorum eius magni, minus qui architecto doloribus ad. Corporis.</p>
<p>Eos minima, aspernatur deserunt excepturi ipsum iusto? Amet molestiae expedita magni cupiditate, ratione iste modi laudantium soluta, possimus deserunt commodi sit perspiciatis totam ut alias odio eius sunt nam culpa.</p>
<button id="fixed">Click to fix</button>
<button id="unfixed">Click to unfix</button>
<p>Tempora alias in laudantium quos officiis officia illum voluptatum facere sed voluptatem nisi id ex similique placeat ipsa dolores molestias consequatur consectetur, rerum minus! Distinctio dolore commodi nihil similique? Excepturi.</p>
<p>Tenetur repellat dolorem adipisci aspernatur? Expedita cupiditate quaerat, libero ad iusto in vel suscipit magni possimus aliquid culpa soluta rem sunt? Autem ratione ipsam quia quo facilis rem veritatis perferendis?</p>
<p>Culpa libero quia et voluptate rem, magnam iusto nesciunt voluptatibus non dolores voluptatum nihil aperiam, nemo neque. Ad asperiores sequi pariatur dolor rerum illo nisi nam temporibus explicabo, blanditiis hic.</p>
<p>Numquam, officia aut! Officiis non delectus error cum a voluptatem consequatur expedita quaerat amet provident soluta, totam facere incidunt voluptatum nam at. Quia, asperiores molestiae. Quis libero odit quisquam ipsa.</p>
<p>Earum hic deleniti, sit ea consequatur vitae dolorem facere deserunt sunt doloremque commodi, voluptate perspiciatis. Illum dolore temporibus hic blanditiis repudiandae fugiat natus? Amet architecto totam inventore asperiores aliquid molestiae?</p>
<p>Dolore dignissimos nesciunt enim exercitationem, eligendi nihil itaque laudantium aperiam adipisci tenetur ipsam esse eos, perferendis, at maiores. Esse facilis tenetur suscipit iste atque officia, beatae fuga ut iure laborum.</p>
<p>Ipsum voluptatum tempore adipisci sed! Perferendis est eius sed odio fuga. Ea culpa, modi optio laboriosam cupiditate nesciunt, necessitatibus tenetur corporis officia libero quis dolores iure obcaecati ab voluptatem quae.</p>
<p>Voluptate, dignissimos dolor nam animi et eligendi commodi nesciunt minima veritatis facilis ullam hic aperiam perspiciatis itaque molestias ex laboriosam a, deleniti enim ratione autem magnam? Iure obcaecati nisi aspernatur.</p>
<p>Praesentium harum, cum quibusdam aliquid sed laboriosam facilis ipsa iure officia modi dicta possimus consequatur adipisci tempore qui natus eaque beatae laudantium illo nihil iste blanditiis architecto eius. Tenetur, molestias!</p>
<p>Mollitia molestiae voluptatem vero, sed quod aliquid possimus quae quas minima neque facere cumque, dicta temporibus cum ipsum culpa minus? Commodi numquam architecto maiores recusandae sapiente ratione dolore quam facilis!</p>
<p>Esse quis quibusdam quos saepe dicta sequi, animi iure nostrum officia qui, aliquam a assumenda reiciendis odit soluta nesciunt amet ea? Voluptas saepe deleniti quae. Ullam maiores aliquid excepturi repellat!</p>
<p>Fuga nulla quae, ex eaque sit labore officiis error? Saepe, laborum! Impedit mollitia quidem perspiciatis eaque, quas velit sint expedita eum facilis veritatis ad quia dicta ab, labore quos temporibus?</p>
<p>Assumenda odio voluptatibus nulla quaerat temporibus, rerum veritatis consectetur ullam dolores aspernatur praesentium sint et delectus dicta. Mollitia repellat officia officiis explicabo nostrum deserunt ipsam, minima, at earum facere laudantium!</p>
<p>Veniam, labore odit. Eligendi ex voluptates ad ut magnam est et, praesentium, facere reiciendis libero sunt officia officiis velit? Aspernatur blanditiis sequi modi cumque molestiae, tenetur autem voluptatibus explicabo repellat?</p>
<p>Necessitatibus aperiam quo maiores, laudantium ipsum vero consectetur nam mollitia obcaecati commodi fuga doloribus quae repudiandae magni in dolorum rem quisquam ea porro perferendis animi quas nostrum dicta dolor. Eum.</p>
<p>Tenetur sit inventore, iure adipisci, aspernatur repellat odio quas, neque minima quae praesentium itaque excepturi perspiciatis? Dignissimos cumque, ad quae quidem magni at magnam totam vel quaerat nesciunt corrupti placeat.</p>
<p>Suscipit repudiandae fugiat harum iusto cumque minus atque consequuntur voluptatibus? Aliquam neque doloribus magnam repellat voluptates incidunt suscipit, eos aut, vero officiis voluptas possimus ipsam itaque quam hic optio nemo.</p>
<p>Veritatis, harum quaerat tempore sed nisi doloribus molestiae itaque officia voluptas officiis accusantium commodi totam incidunt illo odio saepe! Facere fugit beatae adipisci dolor, laboriosam odit laudantium cupiditate quas nesciunt.</p>
<p>Iure deleniti vitae illo, est repellat quo aliquid officia dolor vero quisquam nihil. Pariatur nobis corporis eius nemo, adipisci incidunt repellendus odio voluptate eligendi esse fugiat maxime asperiores perferendis. Eius.</p>
<p>Provident mollitia similique, praesentium illum quidem voluptates iure libero tempora iste ullam fugit distinctio deserunt dicta ducimus qui ex voluptatum reiciendis officiis quos enim! Natus illo voluptatum iusto obcaecati quibusdam?</p>
<p>Nisi delectus voluptatum necessitatibus quod iste? Molestias velit rerum quibusdam itaque perferendis nesciunt culpa eos quaerat perspiciatis. Unde corporis voluptas culpa dignissimos nam velit autem. Sit eveniet ex tempora autem.</p>
<p>Rerum culpa aspernatur modi ipsum sapiente voluptas, delectus voluptatem eligendi eius. Quidem, culpa suscipit, veniam officia consequatur perspiciatis debitis, nihil at ab iure necessitatibus atque laudantium et eius autem quasi?</p>
<p>Provident cumque, veniam harum vero voluptatem eligendi, saepe nulla temporibus nihil similique fugit! Maxime quis ducimus deleniti, sint inventore tempora adipisci exercitationem consequuntur saepe iusto facere totam mollitia reiciendis fugit.</p>
<p>Enim quae sunt eius consectetur, aliquam ratione dolorum tenetur molestias eaque et animi, impedit alias omnis id optio in amet reprehenderit quam odio porro ipsum. Pariatur voluptatem earum aliquid nostrum?</p>
<p>Asperiores exercitationem officia sapiente odit architecto error saepe autem non aperiam deserunt enim unde vitae suscipit neque, nulla incidunt ratione possimus nemo dicta mollitia? Ullam nostrum ipsum suscipit repellat tenetur.</p>
<p>Possimus porro labore, voluptatum saepe inventore repellat nisi, natus impedit illo tempora nostrum corporis recusandae ipsam explicabo qui quae dolor, consequatur aliquid beatae ad voluptate voluptas. Sunt omnis dolorem tempora.</p>
<p>Minus, odio? Inventore, magni. Laudantium perspiciatis aut quas molestiae quae alias neque natus voluptate eveniet odit exercitationem, officiis, aliquid excepturi nihil. Et architecto modi, fugit fuga adipisci assumenda nesciunt! Neque?</p>

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

Prevent active accordion item from closing on click

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>

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