在一段时间内停止执行功能

时间:2020-07-06 16:23:34

标签: javascript jquery

我想在调用另一个函数时停止执行某个函数。假设我在页面底部有一个按钮,在滚动时会出现一个固定位置的按钮,在底部的按钮可见时又会消失。单击时,两个按钮都滚动到页面顶部。 问题是当我单击底部的按钮时,页面将向上滚动,并且由于这个原因,滚动按钮在短时间内可见。有没有一种方法可以阻止函数在这段时间内执行,从而不再将其设置为可见? 这是Jquery代码:

        var btn = $('#ButtonScroll');  //button that is visible when scrolling
        var btn2 = $('#ButtonBottom');   //button at the end of the page     
        $(window).scroll(function() {
          if ($(window).scrollTop() > 1000) {
            btn.addClass('show');
          } else {
            btn.removeClass('show');
          }
        });
        btn.on('click', function(e) {
          e.preventDefault();
          $('html, body').animate({scrollTop:0}, '300');
        });
        btn2.on('click', function(e) {
          e.preventDefault();
          $('html, body').animate({scrollTop:0}, '300');
          setTimeout(yourFunction, 3000);
        });
          
        $(window).scroll(function() {
            var top_of_element = $("#ButtonBottom").offset().top;
            var bottom_of_element = $("#ButtonBottom").offset().top + $("#ButtonBottom").outerHeight();
            var bottom_of_screen = $(window).scrollTop() + $(window).innerHeight();
            var top_of_screen = $(window).scrollTop();

            if ((bottom_of_screen > top_of_element) && (top_of_screen < bottom_of_element)){
                btn.removeClass('show');
            }
        });´

0 个答案:

没有答案