Domanda

Voglio prenderlo in modo che l'ultimo div sulla mia barra laterale rimane appiccicoso quando la pagina scorre, ma si ferma al piè di pagina.Ho quasi lavorato con un tutorial online , ma il calcolo si incasinare quando il disqus commenta il carico e va soload un certo punto.

Ecco una versione di lavoro http://jsfiddle.net/k56yyr/1/ , ma c'è un modo semplice perFai qualcosa come calcolare l'altezza del piè di pagina e poi dirlo a smettere di scorrere lo scorrimento lontano dal fondo della pagina?

È stato utile?

Soluzione

Penso che il tuo problema sia che il tuo valore $('#footer').offset().top cambia dopo il caricamento dei commenti del disqus.Quindi è necessario aggiornare footerTop (e limit in base al nuovo valore footerTop) dopo il caricamento dei commenti o ogni volta che il tuo evento si incrementa.

Qualcosa come:

$(function(){ // document ready
   if ($('#sticky').length) { // make sure "#sticky" element exists
      var el = $('#sticky');
      var stickyTop = $('#sticky').offset().top; // returns number
      var stickyHeight = $('#sticky').height();

      $(window).scroll(function(){ // scroll event
          var limit = $('#footer').offset().top - stickyHeight - 20;

          var windowTop = $(window).scrollTop(); // returns number

          if (stickyTop < windowTop){
             el.css({ position: 'fixed', top: 0 });
          }
          else {
             el.css('position','static');
          }

          if (limit < windowTop) {
          var diff = limit - windowTop;
          el.css({top: diff});
          }
        });
   }
});
.

Come con la maggior parte dei casi, c'è un plugin jquery per questo, come julianm sottolineato nel suo commento,Disponibile qui .Supporta anche un valore di tappo, per fermare la scatola appiccicosa in qualsiasi posizione desiderata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top