使div显示并在向下滚动时在2个高度之间消失 - - 向上滚动向上反转

时间:2014-12-10 00:22:24

标签: javascript html css

在早期的一个帖子(How to make a div appear and disappear between 2 heights?)中,我找到了一个脚本,要添加到我的html中,使div显示在指定的高度,然后在第二个指定的高度消失。

不幸的是,当我向上滚动时,div仍然显示 - 它们不会以它们出现的顺序消失。

任何人都知道是否有办法修改此脚本,以便当且仅当用户从页面顶部在632px和3352px之间滚动时,才能看到具有固定位置的div(具有id为2)? / p>

<script type="text/javascript">
    $(document).ready(function(){
        $("#two_b").hide();
        $(window).scroll(function(){
              if($(window).scrollTop()>632){
                 if($(window).scrollTop()>3352){
                    $("#two_b").fadeOut();
                 }
                 else
                 {
                    $("#two_b").fadeIn();
                 }
              }
        });
    });
</script>

这是我正在努力的网站。这是出于教育目的而未经Theo Chocolate批准:http://www.saritaschaffer.com/wp

Eyal建议之后的新版本:

<script type="text/javascript">
    $(document).ready(function(){
        $("#two_b").hide();
        $(window).scroll(function(){
               if($(window).scrollTop()>632 && $(window).scrollTop()>3352){
                $("#two_b").fadeOut();
             }
         else
             {
                $("#two_b").fadeIn();
              }
        });
    });
</script>

1 个答案:

答案 0 :(得分:1)

问题是您嵌套了if语句。

替换:

          if($(window).scrollTop()>632){
             if($(window).scrollTop()>3352){
                $("#two_b").fadeOut();
             }
             else{
                $("#two_b").fadeIn();
             }
          }

使用:

         if($(window).scrollTop()>632 && $(window).scrollTop()<3352){
            $("#two_b").fadeIn();
         }
         else{
            $("#two_b").fadeOut();
         }

发生的事情是,对于要淡出的元素,它们的scrollTop位置必须大于632且小于3352。 为了实现你的目标,你需要将这些语句联合起来,如果其中任何一个是假的,就把它放进去。