Sto utilizzando uno script che simula l'effetto parallax, sembra funzionare, il problema è che non c'è verso di allineare lo sfondo del div in basso, lo allinea sempre nella parte superiore.

Lo stile css è impostato in questo modo:

codice:
#div {
background: url(immagine.jpg) left bottom no-repeat fixed;
}

e l'allineamento in basso funziona, ma quando inserisco il seguente script mi riporta lo sfondo in alto:


codice:
(function( $ ){
 var $window = $(window);
 var windowHeight = $window.height();
 $window.resize(function () {
  windowHeight = $window.height();
 });
 $.fn.parallax = function(xpos, speedFactor, outerHeight) {
  var $this = $(this);
  var getHeight;
  var firstTop;
  var paddingTop = 0;
  
  //get the starting position of each element to have parallax applied to it  
  $this.each(function(){
      firstTop = $this.offset().top;
  });
  if (outerHeight) {
   getHeight = function(jqo) {
    return jqo.outerHeight(true);
   };
  } else {
   getHeight = function(jqo) {
    return jqo.height();
   };
  }
   
  // setup defaults if arguments aren't specified
  if (arguments.length < 1 || xpos === null) xpos = "50%";
  if (arguments.length < 2 || speedFactor === null) speedFactor = 0.1;
  if (arguments.length < 3 || outerHeight === null) outerHeight = true;
  
  // function to be called whenever the window is scrolled or resized
  function update(){
   var pos = $window.scrollTop();    
   $this.each(function(){
    var $element = $(this);
    var top = $element.offset().top;
    var height = getHeight($element);
    // Check if totally above or totally below viewport
    if (top + height < pos || top > pos + windowHeight) {
     return;
    }
    $this.css('backgroundPosition', xpos + " " + Math.round((firstTop - pos) * speedFactor) + "px");
   });
  }  
  $window.bind('scroll', update).resize(update);
  update();
 };
})(jQuery);

ed infine lo richiamo in questo modo:


codice:
<script type="text/javascript">
$(document).ready(function(){
 
  $('#div).parallax("0%", 10);
})
</script>

Ho provato a sostituire scrollTop con una specie di scrollBottom con qualche consiglio preso sul web, tipo questo:


codice:
$(window).scrollTop() + $(window).height();

ma proprio non riesco.