Jquery数字上下滚动动态切换插件
Jq打造的数字滚动插件,数字变化时,动态滚动切换,效果非常好。
我们先来看示例:
CSS
.textC{ position:absolute; width:500px; overflow:hidden; margin-top:100px; line-height:30px; margin-left:300px; height:30px; } .textCspan{ color:#13BEEC; font-size:28px; font-weight:bold; font-family:Georgia,"TimesNewRoman",Times,serif; position:absolute; }
HTML
<divclass="textC"></div> <pstyle="text-align:center;"><astyle="float:left;margin-left:300px;margin-top:200px;"href="javascript:void(0);"onClick="NumbersAnimate.ChangeNumber(NumbersAnimate.RandomNum(10000000,19999999));">随机切换数字</a> </p>
JS
<scriptsrc="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <scripttype="text/javascript"> $(function(){ NumbersAnimate.Target=$(".textC"); NumbersAnimate.Numbers=12389623; NumbersAnimate.Duration=1500; NumbersAnimate.Animate(); }); varNumbersAnimate={ Target:null, Numbers:0, Duration:500, Animate:function(){ vararray=NumbersAnimate.Numbers.toString().split(""); //遍历数组 for(vari=0;i<array.length;i++){ varcurrentN=array[i]; //数字append进容器 vart=$("<span></span>"); $(t).append("<spanclass=\"childNumber\">"+array[i]+"</span>"); $(t).css("margin-left",18*i+"px"); $(NumbersAnimate.Target).append(t); //生成滚动数字,根据当前数字大小来定 for(varj=0;j<=currentN;j++){ vartt; if(j==currentN){ tt=$("<spanclass=\"main\"><span>"+j+"</span></span>"); }else{ tt=$("<spanclass=\"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){ varoldArray=NumbersAnimate.Numbers.toString().split(""); varnewArray=numbers.toString().split(""); for(vari=0;i<oldArray.length;i++){ varo=oldArray[i]; varn=newArray[i]; if(o!=n){ varc=$($(".main")[i]); varnum=parseInt($(c).html()); vartop=parseInt($($(c).find("span")[0]).css("marginTop").replace('px','')); for(varj=0;j<=n;j++){ varnn=$("<span>"+j+"</span>"); if(j==n){ nn=$("<span>"+j+"</span>"); }else{ nn=$("<spanclass=\"yy\">"+j+"</span>"); } $(c).append(nn); $(nn).css("margin-top",(j+1)*25+top+"px"); } varmargintop=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){ varRange=a-m; varRand=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方法时,需要保证改变后的数字和之前的数字位数一致。