在发现我不能在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之前毫无用处。
发布于 2013-05-26 12:28:27
通过将字符串'blur(‘+r+’px)的计算缓存到javascript变量并保存不必要的计算,可以使脚本更快。
您还可以将$('#r')对象缓存到javascript变量中,甚至可以使用jquery多字属性:$('#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/
https://stackoverflow.com/questions/16757977
复制相似问题