Jquery数字上下滚动动态切换插件

Jq打造的数字滚动插件,数字变化时,动态滚动切换,效果非常好。

我们先来看示例:

CSS

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

.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>

JS

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

<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();

});

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("<span class=\"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=$("<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){

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=$("<span class=\"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. 第一次调用时

1

2

3

4

NumbersAnimate.Target=$(".textC");

NumbersAnimate.Numbers=12389623;

NumbersAnimate.Duration=1500;

NumbersAnimate.Animate();

2. 如果数字改变了,再次调用就只需要调用Change函数即可

1

NumbersAnimate.ChangeNumber();

该插件有3个参数,分别是:

Target:数字的父级容器

Numbers:显示的数字

Duration:滚动速度,单位是毫秒

使用注意:当数字改变后调用Change方法时,需要保证改变后的数字和之前的数字位数一致。