一直在寻找去抖动功能或Jquery中去抖动的方法。动画的构建会变得非常烦人。
这是代码:

function fade() {
    $('.media').hide();
    $('.media').fadeIn(2000);
}
var debounce = false;
function colorChange() {

    if (debounce) return;
    debounce = true;
    $('.centered').mouseenter(function() {
    $('.centered').fadeTo('fast', .25);
    });
    $('.centered').mouseleave(function() {
    $('.centered').fadeTo('fast', 1);
});
}

 function colorChange2() {
    $('.centered2').mouseenter(function() {
    $('.centered2').fadeTo('fast', .25);
});
$('.centered2').mouseleave(function() {
    $('.centered2').fadeTo('fast', 1);
});
}

function colorChange3() {
$('.centered3').mouseenter(function() {
    $('.centered3').fadeTo('fast', .25);
});
$('.centered3').mouseleave(function() {
    $('.centered3').fadeTo('fast', 1);
});
}

function closerFade() {
    $('.closer').hide();
    $('.closer').fadeIn(2000);
}


我将它们全部包装在$(document).ready(function(){

有什么方法可以消除抖动?

最佳答案

我只是将underscore.js包含在我的项目中,并使用其中包含的反跳功能。效果很好。我已经在多个项目中使用过它。

http://underscorejs.org/#debounce


  debounce_.debounce(function,wait,[immediate])创建并返回一个
  传递的函数的新的去反跳版本,它将推迟其
  从上一次执行到等待毫秒后执行
  它被调用的时间。对于实现仅应执行的行为很有用
  输入停止到达后发生。例如:渲染一个
  Markdown注释的预览,重新计算窗口后的布局
  已经停止调整大小,依此类推。
  
  在等待间隔结束时,该函数将使用
  最近传递给去抖动功能的参数。
  
  为直接参数传递true会导致反跳触发
  在等待的前沿而不是后沿起作用
  间隔。在防止意外情况下有用
  双击第二次触发的“提交”按钮。

var lazyLayout = _.debounce(calculateLayout, 300);
$(window).resize(lazyLayout);

10-06 13:33