除非用户滚动,否则延迟操作



我想显示一个div6秒钟,除非用户滚动,否则会自动隐藏div。 目前我有这个

  var wasScrolled = false;
 $(window).on('scroll', function(){
    wasScrolled = true;
    hideBasketballs();
  });
  hideBasketballs();
  function hideBasketballs() {
      if(wasScrolled === false) {
        $(".basketballs").delay(6000).slideUp();
      } else {
        $(".basketballs").slideUp();
      }
  }

这并没有像我预期的那样工作,相反,div 总是等待 6 秒,如果用户滚动,它不会向上滑动。

我也简单地尝试了这个:

  $(window).on('scroll', function(){
    $(".basketballs").slideUp();
  });
  $(".basketballs").delay(6000).slideUp();

但我有同样的问题,任何指导将不胜感激!

更新:

  var wasScrolled = false;
  $(window).on('scroll', function(){
    wasScrolled = true;
    hideBasketballs();
  });
  hideBasketballs();
  function hideBasketballs() {
      if(wasScrolled === false) {
        setTimeout(function() {
             $('.basketballs').slideUp();
        }, 6000);
      } else {
        $(".basketballs").slideUp();
      }
  }

也许尝试添加一个 setTimeout 6 秒来检查 wasScrolled 是否仍然为假,然后调用 slideup,而不是使用 .delay ?也许在设置了延迟操作的元素上调用即时 slideUp 不起作用

最新更新