我有一个简单的函数,它增加了一个 div 的宽度,但它做起来并不顺利,有点“判断力”。
我正在使用请求动画帧在 Chrome 上执行此操作.. 我决定不对数字进行四舍五入,这样我就可以获得十进制宽度增量.. 但我根本无法让它变得平滑我想知道如何改进我的方法。
这是我的功能:
function test(data){
var start = parseInt(data.start);
var length = parseInt(data.length); //total length in minutes to complete
var dif = (new Date().getTime() / 1000) - start; //start holds seconds since epoch
var minutes = dif / 60; //convert seconds past into minutes past
var percentage = (minutes/length) * 100;
if(percentage > 100){ percentage = 100; }
if( percentage != 100 ){
document.getElementById('r').style.width = percentage+'%';
document.getElementById('rt').innerHTML = Math.round(percentage)+'%';
} else if (percentage == 100 ){
document.getElementById('r').style.width = percentage+'%';
document.getElementById('rt').innerHTML = 'COMPLETED';
}
}
我的函数是这样调用的:
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function( callback, element){
window.setTimeout(callback, 200 / 100);
};
})();
function Update(){
requestAnimFrame( Update );
test();
}
JSFIddle:http: //jsfiddle.net/RmXr9/7/
关于提高 div 宽度递增平滑度的方法有什么建议吗?