Partage
  • Partager sur Facebook
  • Partager sur Twitter

[jQuery] Div qui suit le defilement de la page

Reussir a faire suivre un bloc avec le defilement de la page

Sujet résolu
    26 août 2016 à 11:37:32

    Bonjour, et merci d'avoir cliqué.

    Je vous expose mon problème :

    J'ai un bloc "conteneur", assez grand. Ce bloc contient un div. Et je souhaiterais qu'il suivent le defilement de la fenetre. Mais pas en position fixed. Ce div contenu doit rester dans le div conteneur mais etre au milieu de la fenetre lorsque l'on voit le bloc conteneur. Et se bloquer a la fin du div conteneur. Un code HTML pour illustrer :

    <div class="conteneur" style="height:1000px;">
      <div class="contenu" style="height:200px;position:relative;">
      </div>
    </div>

    J'ai mis le bloc "contenu" en position relative, car je pense que la solution est par là.

    Merci d'avance.

    PS : Je prefere une réponse en jQuery si possible, car je suis plus familiariarisé avec le Framework que le langage lui même.

    • Partager sur Facebook
    • Partager sur Twitter
      26 août 2016 à 13:48:10

      Salut,

      C'est pas optimal mais ca ressemble à ce que tu veux. Désolé pas le temps de perfectionner plus le truc :)

      https://jsfiddle.net/djchz3d1/

      • Partager sur Facebook
      • Partager sur Twitter
      Quand tu ne sais pas, Google reste ton meilleur ami ! ;)
        26 août 2016 à 15:11:04

        Bonjour bryan33000, et merci de ta réponse !

        J'ai vu ton code, c'est niquel c'est ce que je voulais, mais j'ai dut le modifier un petit peu pour qu'il s'adapte a la window :

        $(window).scroll(function(){
              var scrollFromTop = window.scrollY;
              var content = $('#menu-accordeon');
              var contentHeight = content.height();
              var container = $('.bloc_notre_cave');
              var containerHeight = container.height();
              var containerOffset = $('.bloc_notre_cave').offset().top;
        
              var containerBottomPositionFromTop = containerOffset + containerHeight;
              var maxScroll = containerBottomPositionFromTop;
        
              if(scrollFromTop < maxScroll){
                 var size = scrollFromTop - containerOffset + ($(window).height() / 2);
                 if (size > 0 && size < containerHeight - contentHeight )
              	     content.css('top', size+"px");
                 }
        });


        bloc_notre_cave = container;

        #menu-accordeon = contenu;

        • Partager sur Facebook
        • Partager sur Twitter
          26 août 2016 à 15:32:24

          Yes nickel, content de t"avoir aidé :)
          • Partager sur Facebook
          • Partager sur Twitter
          Quand tu ne sais pas, Google reste ton meilleur ami ! ;)

          [jQuery] Div qui suit le defilement de la page

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown