【发布时间】:2014-02-07 18:10:07
【问题描述】:
我有一个圆圈,里面有一个百分比文本,从 0% 开始。一旦我将圆圈悬停,它就会从 0 变为 100%(在圆圈周围有另一个效果)。就目前而言,百分比直接从 0 变为 100,我希望它显示进度(0,1,2...,99,100),但我无法让 JQuery 在每次 for 迭代之间等待。
这是我尝试过的:JSFiddle demo。
注意:我的代码目前适用于 chrome。
这是一次迭代:
function actions(i){
var box = $('#box');
box.css('transform','rotate(' + i + ' deg)');
box.css('-ms-transform','rotate(' + i + 'deg)');
box.css('-webkit-transform','rotate(' + i + 'deg)');
prec = (100*(i + 135))/360;
$("div.prec").delay(100).html(Math.round(prec)+"%");
}
我知道delay() 需要排队,而html() 没有排队,所以我已经尝试过setTimeout,但它也不起作用。我也试过setInterval - 见下一个代码sn-p:
setInterval(function () {
$("div.prec").html(Math.round(prec)+"%");
},100);
为了更清楚,我希望百分比适合效果进度 - 如果环绕的三角形行进一半,百分比应该是 50,因此,当我不再悬停圆圈时,它应该逐渐回到0。
【问题讨论】:
标签: javascript jquery css animation