关闭窗口以关闭功能后再打开窗口

时间:2017-12-31 08:23:38

标签: javascript jquery

我有一个脚本使用窗口滚动来为我的标题容器添加效果。

$(window).scroll(function() {
    if ($(document).scrollTop() > 150) {
        $('#main-page').addClass('appear');
        $('#logo1').fadeOut(0);
        $('#logo2').show(0);
    }
    else  {
        $('#logo2').hide(0);
        $('#logo1').fadeIn(0);
        $('#main-page').removeClass('appear');

    }


    });

我在页面上有这个功能,用于在用户滚动div时触发我的图表功能

$(window).scroll(function() {
   var hT = $('#token-stats').offset().top,
       hH = $('#token-stats').outerHeight(),
       wH = $(window).height(),
       wS = $(this).scrollTop();
    console.log((hT-wH) , wS);
   if (wS > (hT+hH-wH)){

    drawDoughnutChart();
     $(window).off('scroll')
   }

});
我想在第一个函数中尝试将其重新打开,或者我在图表函数中添加一些内容,然后将其关闭?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您需要使用jQuery namespaces,这样您off将仅显示图表的滚动,而不是徽标的滚动。

所以在第二个脚本中你需要做这样的事情:

$(window).on('scroll.chart', function() {
  var hT = $('#token-stats').offset().top,
    hH = $('#token-stats').outerHeight(),
    wH = $(window).height(),
    wS = $(this).scrollTop();
  console.log((hT - wH), wS);
  if (wS > (hT + hH - wH)) {

    drawDoughnutChart();
    $(window).off('scroll.chart')
  }
});

虽然$(window).off('scroll.chart')只会off这个处理程序。

For more info