<body>
<main class="linkActive_onScroll">
<aside class="aside">
<a href="#section_1" class="active">section 01</a>
<a href="#section_2">Section 02</a>
<a href="#section_3">Section 03</a>
<a href="#section_4">Section 04</a>
<a href="#section_5">Section 05</a>
</aside>
<h1>L'interMEDIAire</h1>
<section id="section_1">
<h2>Titre 1</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam ipsam delectus sapiente officia temporibus quam dolorum nam iusto asperiores vitae, quia, ratione hic quod vel unde quae tempore a in.Earum sapiente cupiditate ducimus amet quo provident! Adipisci eaque ducimus incidunt tempora ipsa? Iusto, repellat aliquam reprehenderit fugit! Perspiciatis, reprehenderit quisquam excepturi!</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum velit nam illo molestiae earum, distinctio recusandae omnis eius soluta. Saepe asperiores libero modi est eum rem aliquid dolorum laudantium magnam.</p>
</section>
<section id="section_2">
<h2>Titre 2</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam ipsam delectus sapiente officia temporibus quam dolorum nam iusto asperiores vitae, quia, ratione hic quod vel unde quae tempore a in.Earum sapiente cupiditate ducimus amet quo provident! Adipisci eaque ducimus incidunt tempora ipsa? Iusto, repellat aliquam reprehenderit fugit! Perspiciatis, reprehenderit quisquam excepturi!</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum velit nam illo molestiae earum, distinctio recusandae omnis eius soluta. Saepe asperiores libero modi est eum rem aliquid dolorum laudantium magnam.</p>
</section>
<section id="section_3">
<h2>Titre 3</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam ipsam delectus sapiente officia temporibus quam dolorum nam iusto asperiores vitae, quia, ratione hic quod vel unde quae tempore a in.Earum sapiente cupiditate ducimus amet quo provident! Adipisci eaque ducimus incidunt tempora ipsa? Iusto, repellat aliquam reprehenderit fugit! Perspiciatis, reprehenderit quisquam excepturi!</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum velit nam illo molestiae earum, distinctio recusandae omnis eius soluta. Saepe asperiores libero modi est eum rem aliquid dolorum laudantium magnam.</p>
</section>
<section id="section_4">
<h2>Titre 4</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam ipsam delectus sapiente officia temporibus quam dolorum nam iusto asperiores vitae, quia, ratione hic quod vel unde quae tempore a in.Earum sapiente cupiditate ducimus amet quo provident! Adipisci eaque ducimus incidunt tempora ipsa? Iusto, repellat aliquam reprehenderit fugit! Perspiciatis, reprehenderit quisquam excepturi!</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum velit nam illo molestiae earum, distinctio recusandae omnis eius soluta. Saepe asperiores libero modi est eum rem aliquid dolorum laudantium magnam.</p>
</section>
<section id="section_5">
<h2>Titre 5</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quibusdam ipsam delectus sapiente officia temporibus quam dolorum nam iusto asperiores vitae, quia, ratione hic quod vel unde quae tempore a in.Earum sapiente cupiditate ducimus amet quo provident! Adipisci eaque ducimus incidunt tempora ipsa? Iusto, repellat aliquam reprehenderit fugit! Perspiciatis, reprehenderit quisquam excepturi!</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsum velit nam illo molestiae earum, distinctio recusandae omnis eius soluta. Saepe asperiores libero modi est eum rem aliquid dolorum laudantium magnam.</p>
</section>
</main>
</body>
/*COULEURS*/
$noir: rgba(0,0,0,1);
$noirfonce: rgba(29,31,32,1);
$noiropaque: rgba(29,31,32,.9);
$rose: rgba(152,38,114,1);
$bleu: rgba(128,155,189,1);
$blanc: rgba(255,255,255,1);
$gris2: rgba(255,255,255,.8);
$padding: 20px 10px;
/*TOUS LES ELEMENTS*/
*,*:after,*:before {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
body {
margin: 0px auto;
padding: $padding;
width: 640px;
background: $noir;
color: $blanc;
font-size: 1em;
}
html {
scroll-behavior: smooth;
}
main {
position: relative;
padding: 100px 24px 48px;
background: $noirfonce;
}
aside {
z-index: 99;
position: fixed;
top: 40px;
padding: $padding;
background: $noirfonce;
}
@media screen and (min-width: 1024px) {
.aside {
left: 12px;
margin: $padding auto;
width: 210px;
text-align: center;
a {
display: block;
margin-bottom: 8px;
}
}
}
a {
color: $bleu;
text-decoration: none;
transition: all .3s ease-in-out;
&.active {
color: $rose;
}
&:hover, &:active {
color: $blanc
}
}
h1 {
margin: 0;
padding: 0;
color: $bleu;
font-size: 1.4em;
}
h2 {
width: 100%;
color: $rose;
}
h3 {
display: inline-block;
margin: 10px 0px;
color: $gris2;
text-transform: uppercase;
}
h1,h2,h3 {
font-family: 'Inconsolata', monospace;
}
p {
line-height: 1.6em;
color: $gris2;
opacity: .85;
}
/*www.lintermediaire.be*/
View Compiled
document.addEventListener("scroll", () => {
let topWindow = window.scrollY + 70
document.querySelectorAll(".aside a").forEach(link => {
let section = document.querySelector(link.hash)
if ( section.offsetTop <= topWindow && section.offsetTop + section.offsetHeight > topWindow ) {
link.classList.add("active")
}
else {
link.classList.remove("active")
}
})
})
This Pen doesn't use any external CSS resources.