Jquery, trouve le nom de classe div à une certaine position tout en faisant défiler

Un div fixe ( fixed_div ) reste en haut pour afficher une carte Google en son sein. Ensuite, une grande div ( big_div ) reste sous celle-ci. La grande division a à l'intérieur de nombreuses petites divs avec classe small_div . Chaque petite div a un id small_div_n où n = 0,1,2,3 .. consécutivement. Le grand div est défilé sous la division fixe.

HTML:

 <div class="fixed_div" > </div><!-- end of class fixed_div --> <div class="big_div"> <div class="small_div" id="small_div_0"> </div><!--end of class small_div --> <div class="small_div" id="small_div_1"> </div><!--end of class small_div --> <div class="small_div" id="small_div_2"> </div><!--end of class small_div --> </div><!--end of class big_div --> 

Css:

 .fixed_div { position:fixed; height:100px; } .big_div { padding-top:100px; } .small_div { min-height:80px; } 

Les petites divs ont une propriété à hauteur variable.

Si je peux savoir qu'un nouveau small_div a atteint la partie inférieure de la small_div fixe, je peux trouver l' id correspondant de la petite div et peut comprendre quelle carte google doit être affichée dans la division fixe via un appel ajax.

Comment détecter qu'un nouveau small_div a atteint la partie inférieure de la small_div fixe?

EDIT : le grand div dispose d'une propriété min-height .

 <script> (function() { var fixed = $('div.fixed_div'); $(window).on('scroll',function() { var currentFixedDivPosition = fixed.position().top + fixed.height() + $(window).scrollTop(); var temp, whichOne; $('div.small_div').each(function(i,s) { var diff = Math.abs($(s).position().top - currentFixedDivPosition); if(temp) { if(diff < temp) { temp = diff; whichOne = s; } }else { temp = diff; whichOne = s; } }); console.log(temp, $(whichOne).attr('id') + ' was closest'); }); })(); </script> 

Voici une violoncelle: http://jsfiddle.net/s3JKk/ , je ne suis pas sûr de bien comprendre ce que vous vouliez, mais j'espère que cela vous donnera au moins un bon départ. 🙂 Bonne chance!