jquery,在滚动时在某个位置finddiv类的名字
一个固定的div( fixed_div
)停留在顶部显示一个Google地图。 然后一个大div( big_div
)停留在它下面。 大div里面有很多small_div
类的小div。 每个小div有一个id small_div_n
,其中n = 0,1,2,3 ..连续。 大div在固定div下面滚动。
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; }
小divs有一个可变的高度属性。
如果我能够知道一个新的small_div
已经到达固定div的下半部分,我可以find小div的相应id
,并且可以通过ajax调用了解哪个google map将被显示在固定div中。
如何感觉到一个新的small_div
已经到达固定的div的下半部分?
编辑 :大div有一个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>
这里是一个小提琴:我不知道我正确理解你想要什么,但我希望这至less会给你一些启动。 :) 祝你好运!