如果底部到达屏幕顶部,则切换元素

时间:2016-04-05 15:29:29

标签: jquery html

如果屏幕顶部到达该元素的底部,我想切换一个元素。事情是我的功能不起作用,我不知道如何解决这个问题,我真的在互联网上搜索了很长时间,但遗憾的是找不到任何东西。请你帮助我好吗 我曾经像那样切换它:

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

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

if (($(".hiddenpost").offset().bottom + $(".hiddenpost").height()) <= $(window).height()) {
    $(this).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 :(得分:1)

首先,您使用一个类作为选择器。当你在DOM中有这个类的倍数时,你会遇到一个问题。

尝试指定类的特定实例,或在所有类上运行方法。

下面,在我未经测试的示例中,当我滚动时,我会检查每个.hiddenpost以查看它是否在所需的位置。

您可以尝试这样的事情:

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

</script>