SetInterval slowing down
SetInterval slowing down
在发现我不能在Javascript中使用供应商前缀后,我尝试自己制作渐隐模糊。脚本运行大约5-10秒后,console.log
调用速度减慢到每秒一次左右。这是我的问题吗?
这是我写的代码
var i = 0;
var iv = setInterval(function(){
if(Number(i) > 2)
{
clearInterval(iv);
}
console.log(i);
r = i.toFixed(2);
$('#r').css('filter', 'blur(' + r + 'px)');
$('#r').css('-webkit-filter', 'blur(' + r + 'px)');
$('#r').css('-moz-filter', 'blur(' + r + 'px)');
$('#r').css('-o-filter', 'blur(' + r + 'px)');
$('#r').css('-ms-filter', 'blur(' + r + 'px)');
i += 0.01;
}, 1);
和一个JSFiddle
我猜这是JS处理浮点数的方式,也有什么办法让淡出模糊更平滑?一旦i
靠近0.8
,它就会变得很不稳定。我如何修复setInterval
上的第二次延迟?还有人能复制这个吗?
注意事项
当尝试使用for循环执行相同的操作时,也会发生同样的事情,但它也会使页面变得无用,直到循环停止时到达2
。
你可以通过缓存字符串'blur(' + r + 'px)'的计算到一个javascript变量中,从而使脚本更快,并节省不必要的计算。
你也可以缓存$('#r')对象到一个javascript变量,甚至使用jquery css多字属性:$('#r').css({propertyName: value, propertyName: value})
类似:
var calc = 'blur(' + r + 'px)';
$('#r').css({
'filter' : calc ,
'-webkit-filter' : calc,
'-moz-filter' : calc,
'-o-filter' : calc,
'-ms-filter' : calc
});
点击这里查看:http://jsfiddle.net/gMq3P/3/
相关文章:
- jQuery slideUp/Down奇怪事件
- 格式化Ember/drill-down/serialize/adapter的JSON项目
- Javascript Drop Down Box
- 带有slideUp/Down和clearQueue的jQuery问题
- jQuery幻灯片Down&然后在计时器上向上滑动
- 如何限制 .key down JavaScript 事件
- 限制 = 1 = 1ms,限制 > 1 = 150ms(mongo-melt-down)
- javascript break down VIN number
- Slow down setAttribute()
- Cacading Drop Down第二个下拉名称angularjs中没有更改
- 如何防止密钥UP;HTML输入字段中的DOWN行为
- fadeIn fadeOut elements as you scroll up and down
- 图像默认加载,而不是使用JQuery:Image on Scroll Down函数保持隐藏
- 在AngularJS项目中设置Typeahead Drop Down的宽度
- 如何使用 Ember 更新属性后滚动到 DOWN
- 如何使用特殊键监视onkeyup/down事件(返回零keyCode)
- Populate drop down list with jsp, struts2 & postgresql
- JS Numeric value UP or Down
- 如何解决“无法调用未定义的方法'down'”错误
- SetInterval slowing down