根据滚动速度去抖动

时间:2019-03-18 15:02:45

标签: javascript event-handling dom-events debouncing

我在这里具有防抖功能:

function debounce(func, interval) {
  var timeout;
  return function () {
    var context = this, args = arguments;
    var later = function () {
      timeout = null;
      func.apply(context, args);
    };
    clearTimeout(timeout);
    timeout = setTimeout(later, interval || 200);
  };
}

此去抖动功能的默认行为是基于时间运行。如果传递给它的函数的调用速率大于传递给它的间隔的速率,则仅将调用尾部边缘。

我想知道是否可以重构此函数,因此它不是基于时间间隔来限制函数调用,而是根据滚动像素数来限制。基本上,此功能将允许随时间变化的去抖动,而不是恒定的去抖动。例如,无论我滚动多快,都只允许函数每滚动5个像素运行一次。

此问题的上下文是我想使界面更平滑,以便在快速滚动时,滚动处理程序可以直观地响应。

0 个答案:

没有答案