J'essaie d'obtenir un défilement de page fluide mais j'ai l'impression que cette implémentation va affecter les performances puisque j'utilise infinity requestAnimationFrame, ma question est de savoir s'il y a une meilleure solution pour mon implémentation ? ou si tout le code est mauvais et ne peut pas être corrigé ?
mise à jour J'essaie simplement d'obtenir un défilement fluide de l'ensemble de la page et non un lien d'ancrage.
comme ces sites web par exemple
https://www.aristidebenoist.com/
const body = document.body,
scrollWrap = document.getElementsByClassName("smooth-scroll-wrapper")[0],
height = scrollWrap.getBoundingClientRect().height - 1,
speed = 0.04;
var offset = 0;
body.style.height = Math.floor(height) + "px";
function smoothScroll() {
offset += (window.pageYOffset - offset) * speed;
var scroll = "translateY(-" + offset + "px) translateZ(0)";
scrollWrap.style.transform = scroll;
callScroll = requestAnimationFrame(smoothScroll);
}
smoothScroll();
html {
overflow-x: hidden;
}
html, body {
margin: 0;
padding: 0;
background: #161616;
color: #fff;
font-family: "Neue Machina";
}
body {
overflow: hidden;
width: 100%;
}
.smooth-scroll-wrapper {
position: fixed;
z-index: 2;
top: 0;
left: 0;
overflow: hidden;
}
.content {
font-size: 100px;
}
<div class="smooth-scroll-wrapper">
<div class="content">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Numquam excepturi tenetur sapiente
dolor deleniti. Fuga labore pariatur esse. Repudiandae,voluptates nisi soluta architecto
inventore hic. Omnis eos expedita sed architecto illum mollitia! Totam aperiam
velconsequuntur a, ipsum sapiente sit laborum exercitationem distinctio labore praesentium
</div>
</div>