当“.hiddenpost”的底部位于屏幕顶部时切换它

时间:2016-04-06 12:07:26

标签: jquery html

我从来没有问过,总是找到正确的答案,但今天我不得不问这里因为我找不到正确的答案(即使是高级搜索)。

所以对我的问题:如果屏幕顶部到达该元素的底部(当然是jQuery),我想切换一个元素。事情是我的功能不起作用,我不知道如何解决这个问题,我真的在互联网上搜索了很长时间,但遗憾的是找不到任何东西。

你能帮帮我吗? 我曾经像那样切换它:

$(".tablee").click(function() {
    $(this).next().slideToggle();
});

jQuery(我尝试在元素的底部到达屏幕顶部时切换):

$(function(){
    $("body").on("scroll",function(){
      $(".hiddenpost").each(function(){
        var x = $(this);
        if ((x.offset().bottom + x.height()) <= $(window).height()) {
          x.slideToggle();
        }
      });
   });
});

HTML(简化为重要的事情):

<div class="parent">
    <div class="tablee" style="height:100px;"></div>
    <div class="hiddenpost"  style="height:400px;"></div>
</div>
<div class="parent">
    <div class="tablee" style="height:100px;"></div>
    <div class="hiddenpost"  style="height:400px;"></div>
</div>
<div class="parent">
    <div class="tablee" style="height:100px;"></div>
    <div class="hiddenpost"  style="height:400px;"></div>
</div>
...

1 个答案:

答案 0 :(得分:0)

试试这个:

    $(function(){
        $(window).on('scroll', function () {
            var scrollPosition = $(window).scrollTop();
            $(".hiddenpost").each(function(){
                var divBottomPosition = $(this).offset().top + $(this).outerHeight();
                if (divBottomPosition < scrollPosition) $(this).slideToggle();
            });
        });
    }