Bloquer un div en haut de page lors d'un scroll vertical

BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 5 janv. 2011 à 22:16
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 - 6 janv. 2011 à 11:03
Hello,

je suis en train d'essayer de reproduire l'effet qu'on peut voir sur le site de Deezer : Deezer, à savoir lorsqu'on fait un scroll vertical la partie du menu en haut qui contient le logo disparaît mais la partie du menu qui contient le lecteur reste bloquée en haut de page.
bref, j'ai essayé en bricolant ce script :

window.onscroll = function() {
    var scroll = (document.documentElement.scrollTop || document.body.scrollTop);
    if(scroll>70){
        document.getElementById('bloc').style.top = scroll+'px';
 document.getElementById('bloc2').style.top = scroll+'px';
}else if(scroll<70 || scroll == 70){
document.getElementById('bloc').style.top = '70px';
document.getElementById('bloc2').style.top = '70px';
}
}


Ca fonctionne bien mais un petit problème me chagrine : la partie que je souhaite bloquer est bien bloquée mais de légers sursauts l'anime et donnent ainsi un rendu qui n'est pas des plus heureux.
Donc si quelqu'un avait une suggestion pour améliorer ma fonction et permettre ainsi d'avoir un rendu propre comme sur le site de Deezer je suis preneur .

Merci ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;

2 réponses

@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
5 janv. 2011 à 23:51
ce qu'il faudrait c'est mettre la barre en position fixed au moment desiré

et aussi

else if(scroll<70 || scroll == 70)


en plus court sa donne

else if(scroll<= 70)
0
BBFUNK01 Messages postés 1310 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 20 juin 2014 6
6 janv. 2011 à 11:03
Hello,

merci pour ta réponse rapide. Pour ce qui est de mettre la barre en position fixed lorsque besoin est j'y avais pensé, le truc c'est qu'en testant dan les différents navigateurs je m'aperçois que le "bug" est uniquement visible dans Firefox, sous Safari et Chrome c'est fluide... Donc peut-être que "la vérité est ailleurs" .

A plus ,

BBFUNK01
//C'est en forgeant qu'on devient forgeron... ;-) ;
0
Rejoignez-nous