2010-03-22 9 views

Répondre

1

je pourrais aussi bien poster ici comme une réponse:

function elementInView($elem, vps, vpe) { 
    var elempos = $elem.position(); 
    var pagestart = elempos.top + vps; 
    var pageend = elempos.top + vps + $elem.height(); 
    var offset = $elem.height() - Math.max(0,vps-pagestart) - Math.max(0,pageend-vpe);  
    return (vpe > 0 && offset > -200); 
} 

$('#container').bind('scroll', function() { 
    var $container = $(this); 
    var vps = $container.scrollTop(); 
    var vpe = vps + $container.height(); 

    $('li', '#container').each(function() { 
     var $this = $(this); 
     if (elementInView($this,vps,vpe)) { 
      // $this is now in view 
     } 
    }); 
}); 

Je sais que cela a des problèmes de performance, et peut être optimisé, mais il devrait être un début.

Questions connexes