jQuery Toggle不要通过滚动来停止切换

时间:2015-09-20 13:58:58

标签: javascript jquery events triggers toggle

你好我对Jquery toggeling有一点问题。

当我滚动到div切换时,不想停下来玩一会儿。

我不知道如何只触发一次在div入口处切换并将其设置回div出口(从顶部)。

有我的代码

$(document).ready(function(){

  $(".fa-home-mini").css("display", "none");

    $('.fa-home-mini').click(function () {

            if($('.navi').is(':visible')){

            $('.navi').toggle('slide', {
                direction: 'left'
            }, 1000);

        }
           else{          
                $('.navi').toggle('slide', {
                    direction: 'left'
                }, 1000);           
            }       
});

$(window).scroll( function() {
    var value = $(this).scrollTop();
    if ( value > 480 ){
        $(".fa-home-mini").css("display", "block");
        $('.fa-home-mini').trigger('click');

        }

    else
    {
        $(".fa-home-mini").css("display", "none");
        $(".navi").css("display", "block");


    }

});

});

1 个答案:

答案 0 :(得分:1)

您可以在if块中使用 off 方法,如下所示:

if ( value > 480 ){
    $(".fa-home-mini").css("display", "block");
    $('.fa-home-mini').trigger('click');
    $(window).off('scroll')
}

另一种方法是:

var flag = false;
$(window).scroll( function() {
    var value = $(this).scrollTop();
    if ( value > 480 ){
        if(!flag) {
          $(".fa-home-mini").css("display", "block");
          $('.fa-home-mini').trigger('click');
          flag = true;
      }
    }
    else
    {
        $(".fa-home-mini").css("display", "none");
        $(".navi").css("display", "block");
    }
});