67 votes

Exécutez ScrollTop avec le décalage de l'élément par ID

Essayer de faire défiler le navigateur vers un identifiant spécifique avec un décalage ajouté -

 $('html, body').animate({scrollTop: $('#contact').offset().top}, 'slow');

Ce que je dois faire, c'est définir le décalage de -100px. Comment puis-je accomplir cela?

155voto

charlietfl Points 41873

Aucune magie impliquée, il suffit de soustraire du haut décalé de l'élément

 $('html, body').animate({scrollTop: $('#contact').offset().top -100 }, 'slow');

2voto

jQuery(function($) {
  $('a[href*="#"]:not([href="#"])').click(function() {
      var target = $(this.hash);
        $('html,body').stop().animate({
          scrollTop: target.offset().top - 120
        }, 'linear');   
  });    
    if (location.hash){
    var id = $(location.hash);
    }
    $(window).on('load', function() {
    if (location.hash){
        $('html,body').animate({scrollTop: id.offset().top -120}, 'linear')
    };
    });
});

cela a fonctionné pour moi.

0voto

Rai Ahmad Fraz Points 19
var top = ($(".apps_intro_wrapper_inner").offset() || { "top": NaN }).top;   
if (!isNaN(top)) {
$("#app_scroler").click(function () {   
$('html, body').animate({
            scrollTop: top
        }, 100);
    });
}

si vous voulez faire défiler un peu au-dessus ou en dessous de div spécifiques qui ajoutent de la valeur vers le haut comme ceci ..... comme j'ajoute 800

 var top = ($(".apps_intro_wrapper_inner").offset() || { "top": NaN }).top + 800;

0voto

abubakkar tahir Points 51

aucune logique n'implique seulement besoin de soustraction avec -215 et c'est exact de mettre ma div correctement en position supérieure

 $('html,body').animate({scrollTop: $("#"+id).offset().top -215},'slow');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X