Hello,
Petit souci sur du javascript, j'ai en fait deux flêches pour monter descendre dans mes sections sur chaque page, le hic c'est que j'ai un menu fixe en haut et ça masque certains elements, du coup j'aimerais mettre un offsetTop, pourriez vous me guider car je suis un peu paumé, j'ai récup un code d'un JsFiddle qui marche bien, il ne me manque que l'offset Top pour être parfait.
Merci par avance.
Voici mon code html
et mon terrible code Js que je ne comprend pas (et que je ne comprendrais surement jamais...)
Petit souci sur du javascript, j'ai en fait deux flêches pour monter descendre dans mes sections sur chaque page, le hic c'est que j'ai un menu fixe en haut et ça masque certains elements, du coup j'aimerais mettre un offsetTop, pourriez vous me guider car je suis un peu paumé, j'ai récup un code d'un JsFiddle qui marche bien, il ne me manque que l'offset Top pour être parfait.
Merci par avance.
Voici mon code html
<div id="scroll-section" class="arrows">
<a href="#" class="arrow-up prev-section"><i class="fa fa-chevron-circle-up" aria-hidden="true"></i></a>
<a href="#" class="arrow-down next-section"><i class="fa fa-chevron-circle-down" aria-hidden="true"></i></a>
</div>
et mon terrible code Js que je ne comprend pas (et que je ne comprendrais surement jamais...)
var sections = $('.panelSection');
console.log(sections);
var i =0;
var scrolto = 0;
function next(){
if(i == 0){
$('.prev-section').show();
}
if(i < sections.length -1){
i++;
if(i == sections.length -1){
$('.next-section').hide();
}
$('html, body').animate({
scrollTop: sections[i].offsetTop
}, 2000);
}else{
alert('end reached');
}
}
function prev(){
if(i == sections.length -1){
$('.next-section').show();
}
if(i > 0){
i--;
if(i == 0){
$('.prev-section').hide();
}
$('html, body').animate({
scrollTop: sections[i].offsetTop
}, 2000);
}
}
$('html').keydown(function(e){
if(e.which == '38'){
prev();
}
if(e.which == '40'){
next();
}
});
$('.next-section').click(function(e){
e.preventDefault();
next();
});
$('.prev-section').click(function(e){
e.preventDefault();
prev();
});