锁定老帖子 主题:jQuery加分动画效果示例
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-01-31
最后修改:2012-02-02
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> jQuery加分动画效果示例 </TITLE> <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script src="Scripts/jquery.message.js" type="text/javascript"></script> <link href="Css/jquery.message.css" rel="stylesheet" type="text/css" /> <script> $(function(){ $("#add").click(function(){ //取得要加的分数 var fen = $("#fen").val(); //取得现在的分数 var result = $("#result").text()*1; //分数验证 if(!(/^(([0-9])|([1-9]+[0-9]*))$/.test(fen)) ){ alert('不是有效数字'); return false; } //文本框和按钮设置成不可用 $("#add").attr("disabled",true); $("#fen").attr("disabled",true); //显示加分提示框 $.MessageShow("+"+fen+"分"); //开始进行分数变化过程 var a_num = fen; var a=result; var clear = setInterval(function(){ $("#result").text(a); if(a<(result*1+fen*1)){ a++; }else{ //停止运行 clearInterval(clear); //文本框和按钮设置成可用 $("#add").attr("disabled",false); $("#fen").attr("disabled",false); } },(1));// 3000/a_num+1 }); }); </script> </HEAD> <BODY> 分数<b id='result'>100</b> <br/> <input type='text' name='fen' id='fen' value=''/> <input type='button' name='add' id='add' value='加分'/> </BODY> </HTML> 后来发现加的数值太大后会等待的时间太久,我就在这个基础上做了一下修改 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> jQuery加分动画效果示例 </TITLE> <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script src="Scripts/jquery.message.js" type="text/javascript"></script> <link href="Css/jquery.message.css" rel="stylesheet" type="text/css" /> <script> $(function(){ //取得每次相加的数值,mum为要加的分数,n为相加的流水次数 function getAddNum(num,n){ var len = num.toString().length;//取得数值的长度 var sp=1; //每次相加的数值 if(len>2){ //如果分数长度大于2,(总相加次数-1)次相加过程中就每次相加(分数长度-1)个1,最后加上剩余的数值。 var J=0; for(J=0;J<(len-2);J++){ //计算出 (分数长度-1)个1 sp+="1"; } sp = sp*1; var v= parseInt(num/sp); //有多少次 if(n<v){ return sp; //返回(分数长度-1)个1 }else{ return (num-v*sp);//返回剩余数值 } } return sp; } $("#add").click(function(){ //取得要加的分数 var fen = $("#fen").val(); //取得现在的分数 var result = $("#result").text()*1; //分数验证 if(!(/^(([0-9])|([1-9]+[0-9]*))$/.test(fen)) ){ alert('不是有效数字'); return false; } //文本框和按钮设置成不可用 $("#add").attr("disabled",true); $("#fen").attr("disabled",true); //显示加分提示框 $.MessageShow("+"+fen+"分"); //开始进行分数变化过程 var a_num = fen; var a=result; var I=0; //记录相加次数 var clear = setInterval(function(){ $("#result").text(a); if(a<(result*1+fen*1)){ a = a+getAddNum(fen,I); I++; }else{ //停止运行 clearInterval(clear); //文本框和按钮设置成可用 $("#add").attr("disabled",false); $("#fen").attr("disabled",false); } },(1));// 3000/a_num+1 }); }); </script> </HEAD> <BODY> 分数<b id='result'>100</b> <br/> <input type='text' name='fen' id='fen' value=''/> <input type='button' name='add' id='add' value='加分'/> </BODY> </HTML> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-02-01
留底以后备用。。。
|
|
返回顶楼 | |
发表时间:2012-02-01
没人啊看来
|
|
返回顶楼 | |
发表时间:2012-02-01
这个setInterval(function(){},1);用得很巧秒,确实可以达到变化的效果,我先还以为是CSS在控制
|
|
返回顶楼 | |
发表时间:2012-02-01
效果挺好的
|
|
返回顶楼 | |
发表时间:2012-02-02
效果很不错,果断收藏
|
|
返回顶楼 | |
发表时间:2012-02-02
效果还行,加1000分等待时间太长~~
如果加1W,10W那估计。。。。 |
|
返回顶楼 | |
发表时间:2012-02-02
建议在修改大量数值的时候缩短时间。
|
|
返回顶楼 | |
发表时间:2012-02-02
好,真的很好
|
|
返回顶楼 | |
发表时间:2012-02-02
lf662000 写道 效果还行,加1000分等待时间太长~~
如果加1W,10W那估计。。。。 你试一下这个看看 |
|
返回顶楼 | |