Jq打造的數字滾動插件,數字變化時,動態滾動切換,效果非常好。
我們先來看示例:
CSS
.textC { position:absolute; width:500px; overflow:hidden; margin-top: 100px; line-height:30px; margin-left: 300px; height:30px;}.textC span { color: #13BEEC; font-size: 28px; font-weight: bold; font-family: Georgia, "Times New Roman", Times, serif; position: absolute;}
HTML
JS
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script><script type="text/javascript">$(function(){ NumbersAnimate.Target=$(".textC"); NumbersAnimate.Numbers=12389623; NumbersAnimate.Duration=1500; NumbersAnimate.Animate();});var NumbersAnimate={ Target:null, Numbers:0, Duration:500, Animate:function(){ var array=NumbersAnimate.Numbers.toString().split(""); //遍歷數組 for(var i=0;i<array.length;i++){ var currentN=array[i]; //數字append進容器 var t=$("<span></span>"); $(t).append("<span class=/"childNumber/">"+array[i]+"</span>"); $(t).css("margin-left",18*i+"px"); $(NumbersAnimate.Target).append(t); //生成滾動數字,根據當前數字大小來定 for(var j=0;j<=currentN;j++){ var tt; if(j==currentN){ tt=$("<span class=/"main/"><span>"+j+"</span></span>"); }else{ tt=$("<span class=/"childNumber/">"+j+"</span>"); } $(t).append(tt); $(tt).css("margin-top",(j+1)*25+"px"); } $(t).animate({marginTop:-((parseInt(currentN)+1)*25)+"px"},NumbersAnimate.Duration,function(){ $(this).find(".childNumber").remove(); }); } }, ChangeNumber:function(numbers){ var oldArray=NumbersAnimate.Numbers.toString().split(""); var newArray=numbers.toString().split(""); for(var i=0;i<oldArray.length;i++){ var o=oldArray[i]; var n=newArray[i]; if(o!=n){ var c=$($(".main")[i]); var num=parseInt($(c).html()); var top=parseInt($($(c).find("span")[0]).css("marginTop").replace('px', '')); for(var j=0;j<=n;j++){ var nn=$("<span>"+j+"</span>"); if(j==n){ nn=$("<span>"+j+"</span>"); }else{ nn=$("<span class=/"yy/">"+j+"</span>"); } $(c).append(nn); $(nn).css("margin-top",(j+1)*25+top+"px"); } var margintop=parseInt($(c).css("marginTop").replace('px', '')); $(c).animate({marginTop:-((parseInt(n)+1)*25)+margintop+"px"},NumbersAnimate.Duration,function(){ $($(this).find("span")[0]).remove(); $(".yy").remove(); }); } } NumbersAnimate.Numbers=numbers; }, RandomNum:function(m,a){ var Range = a - m; var Rand = Math.random(); return(m + Math.round(Rand * Range)); }}</script>
插件使用非常簡單
1. 第一次調用時
NumbersAnimate.Target=$(".textC");NumbersAnimate.Numbers=12389623;NumbersAnimate.Duration=1500;NumbersAnimate.Animate();
2. 如果數字改變了,再次調用就只需要調用Change函數即可
NumbersAnimate.ChangeNumber();
該插件有3個參數,分別是:
Target:數字的父級容器
Numbers:顯示的數字
Duration:滾動速度,單位是毫秒
使用注意:當數字改變后調用Change方法時,需要保證改變后的數字和之前的數字位數一致。
新聞熱點
疑難解答