一直在寻找去抖动功能或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);