Jquery數字切換特效

oofw5751 8年前發布 | 4K 次閱讀 JavaScript jQuery

[JavaScript]代碼    

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",18i+"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));   
}

} </pre>

QQ圖片20150703091425.png    

 本文由用戶 oofw5751 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!