清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 | <!doctype html> <html> <head> <title>数字滚动插件 by Mantou</title> <meta charset= "utf-8" > <meta name= "description" content= "欢迎访问 Mantou 的个人网站:www.mtsee.com ; HTML5在线编辑器:www.h5ds.com" > <script src= "http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js" ></script> <style> /*数字滚动插件的CSS可调整样式*/ .mt-number-animate{ font-family: '微软雅黑' ; line-height:40px; height: 40px; /*设置数字显示高度*/ ; font-size: 36px; /*设置数字大小*/ overflow: hidden; display: inline-block; position: relative; } .mt-number-animate .mt-number-animate-dot{ width: 15px; /*设置分割符宽度*/ line-height: 40px; float : left; text-align: center;} .mt-number-animate .mt-number-animate-dom{ width: 20px; /*设置单个数字宽度*/ text-align: center; float : left; position: relative; top: 0;} .mt-number-animate .mt-number-animate-dom .mt-number-animate-span{ width: 100%; float : left;} </style> </head> <body> <br><br> 有分隔符,有小数点:<div class = "numberRun" ></div> <br><br> 只有分隔符:<div class = "numberRun2" ></div> <br><br> 只有小数点:<div class = "numberRun3" ></div> <br><br> 无分隔符,无小数点:<div class = "numberRun4" ></div> </body> <script> /** * by Mantou qq:676015863 * 数字滚动插件 v1.0 */ ;( function ($) { $.fn.numberAnimate = function (setting) { var defaults = { speed : 1000, //动画速度 num : "" , //初始化值 iniAnimate : true , //是否要初始化动画效果 symbol : '' , //默认的分割符号,千,万,千万 dot : 0 //保留几位小数点 } //如果setting为空,就取default的值 var setting = $.extend(defaults, setting); //如果对象有多个,提示出错 if ($( this ).length > 1){ alert( "just only one obj!" ); return ; } //如果未设置初始化值。提示出错 if (setting.num == "" ){ alert( "must set a num!" ); return ; } var nHtml = '<div class = "mt-number-animate-dom" data-num= "{{num}}" >\ <span class = "mt-number-animate-span" >0</span>\ <span class = "mt-number-animate-span" >1</span>\ <span class = "mt-number-animate-span" >2</span>\ <span class = "mt-number-animate-span" >3</span>\ <span class = "mt-number-animate-span" >4</span>\ <span class = "mt-number-animate-span" >5</span>\ <span class = "mt-number-animate-span" >6</span>\ <span class = "mt-number-animate-span" >7</span>\ <span class = "mt-number-animate-span" >8</span>\ <span class = "mt-number-animate-span" >9</span>\ <span class = "mt-number-animate-span" >.</span>\ </div>'; //数字处理 var numToArr = function (num){ num = parseFloat(num).toFixed(setting.dot); if ( typeof (num) == 'number' ){ var arrStr = num.toString().split( "" ); } else { var arrStr = num.split( "" ); } //console.log(arrStr); return arrStr; } //设置DOM symbol:分割符号 var setNumDom = function (arrStr){ var shtml = '<div class="mt-number-animate">' ; for ( var i=0,len=arrStr.length; i<len; i++){ if (i != 0 && (len-i)%3 == 0 && setting.symbol != "" && arrStr[i]!= "." ){ shtml += '<div class="mt-number-animate-dot">' +setting.symbol+ '</div>' +nHtml.replace( "{{num}}" ,arrStr[i]); } else { shtml += nHtml.replace( "{{num}}" ,arrStr[i]); } } shtml += '</div>' ; return shtml; } //执行动画 var runAnimate = function ($parent){ $parent.find( ".mt-number-animate-dom" ).each( function () { var num = $( this ).attr( "data-num" ); num = (num== "." ?10:num); var spanHei = $( this ).height()/11; //11为元素个数 var thisTop = -num*spanHei+ "px" ; if (thisTop != $( this ).css( "top" )){ if (setting.iniAnimate){ //HTML5不支持 if (!window.applicationCache){ $( this ).animate({ top : thisTop }, setting.speed); } else { $( this ).css({ 'transform' : 'translateY(' +thisTop+ ')' , '-ms-transform' : 'translateY(' +thisTop+ ')' , /* IE 9 */ '-moz-transform' : 'translateY(' +thisTop+ ')' , /* Firefox */ '-webkit-transform' : 'translateY(' +thisTop+ ')' , /* Safari 和 Chrome */ '-o-transform' : 'translateY(' +thisTop+ ')' , '-ms-transition' :setting.speed/1000+ 's' , '-moz-transition' :setting.speed/1000+ 's' , '-webkit-transition' :setting.speed/1000+ 's' , '-o-transition' :setting.speed/1000+ 's' , 'transition' :setting.speed/1000+ 's' }); } } else { setting.iniAnimate = true ; $( this ).css({ top : thisTop }); } } }); } //初始化 var init = function ($parent){ //初始化 $parent.html(setNumDom(numToArr(setting.num))); runAnimate($parent); }; //重置参数 this .resetData = function (num){ var newArr = numToArr(num); var $dom = $( this ).find( ".mt-number-animate-dom" ); if ($dom.length < newArr.length){ $( this ).html(setNumDom(numToArr(num))); } else { $dom.each( function (index, el) { $( this ).attr( "data-num" ,newArr[index]); }); } runAnimate($( this )); } //init init($( this )); return this ; } })(jQuery); $( function (){ //初始化 var numRun = $( ".numberRun" ).numberAnimate({num: '15343242.10' , dot:2, speed:2000, symbol: "," }); var nums = 15343242.10; setInterval( function (){ nums+= 3433.24; numRun.resetData(nums); },3000); var numRun2 = $( ".numberRun2" ).numberAnimate({num: '15343242' , speed:2000, symbol: "," }); var nums2 = 15343242; setInterval( function (){ nums2+= 1433; numRun2.resetData(nums2); },2000); var numRun3 = $( ".numberRun3" ).numberAnimate({num: '52353434.343' , dot:3, speed:2000}); var nums3 = 52353434.343; setInterval( function (){ nums3+= 454.521; numRun3.resetData(nums3); },4000); var numRun4 = $( ".numberRun4" ).numberAnimate({num: '52353434' , speed:2000}); var nums4 = 52353434; setInterval( function (){ nums4+= 123454; numRun4.resetData(nums4); },3500); }); </script> </html> |