Jquery數(shù)字上下滾動(dòng)動(dòng)態(tài)切換插件
Jq打造的數(shù)字滾動(dòng)插件,數(shù)字變化時(shí),動(dòng)態(tài)滾動(dòng)切換,效果非常好。
我們先來看示例:
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
<p style="text-align:center;"><a style="float:left; margin-left:300px; margin-top:200px;" href="javascript:void(0);" onClick="NumbersAnimate.ChangeNumber(NumbersAnimate.RandomNum(10000000,19999999));">隨機(jī)切換數(shù)字</a>
</p>
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("");
//遍歷數(shù)組
for(var i=0;i<array.length;i++){
var currentN=array[i];
//數(shù)字append進(jìn)容器
var t=$("<span></span>");
$(t).append("<span class=\"childNumber\">"+array[i]+"</span>");
$(t).css("margin-left",18*i+"px");
$(NumbersAnimate.Target).append(t);
//生成滾動(dòng)數(shù)字,根據(jù)當(dāng)前數(shù)字大小來定
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>
插件使用非常簡(jiǎn)單
1. 第一次調(diào)用時(shí)
NumbersAnimate.Target=$(".textC");
NumbersAnimate.Numbers=12389623;
NumbersAnimate.Duration=1500;
NumbersAnimate.Animate();
2. 如果數(shù)字改變了,再次調(diào)用就只需要調(diào)用Change函數(shù)即可
NumbersAnimate.ChangeNumber();
該插件有3個(gè)參數(shù),分別是:
Target:數(shù)字的父級(jí)容器
Numbers:顯示的數(shù)字
Duration:滾動(dòng)速度,單位是毫秒
使用注意:當(dāng)數(shù)字改變后調(diào)用Change方法時(shí),需要保證改變后的數(shù)字和之前的數(shù)字位數(shù)一致。
相關(guān)文章
jquery form表單提交插件asp.net后臺(tái)中文解碼
對(duì)于jquery form表單提交插件jquery.form.js,在提交表單數(shù)據(jù)時(shí),如果表單數(shù)據(jù)有中文,則被提交的數(shù)據(jù)是要經(jīng)過編碼的。2010-06-06
jQuery中使用validate插件校驗(yàn)表單功能
這篇文章主要介紹了jQuery中使用validate插件校驗(yàn)表單功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒,需要的朋友可以參考下2019-05-05
jQuery中$.each()函數(shù)的用法引申實(shí)例
jQuery中的$.each()函數(shù)比forEach更加強(qiáng)大,可以用來遍歷JavaScript中的任意集合,借來下來我們會(huì)舉幾個(gè)jQuery中$.each()函數(shù)的用法引申實(shí)例,首先先來回顧一下遍歷用法的基礎(chǔ):2016-05-05
jQuery與getJson結(jié)合的用法實(shí)例
這篇文章主要介紹了jQuery與getJson結(jié)合的用法,實(shí)例分析了jquery解析json數(shù)據(jù)及數(shù)組遍歷的相關(guān)操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
淺談jquery fullpage 插件增加頭部和版權(quán)的方法
下面小編就為大家分享一篇淺談jquery fullpage 插件增加頭部和版權(quán)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看2018-03-03
JQuery中attr屬性和jQuery.data()學(xué)習(xí)筆記【必看】
下面小編就為大家?guī)硪黄狫Query中attr屬性和jQuery.data()學(xué)習(xí)筆記【必看】。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧2016-05-05

