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


Posted in Javascript onAugust 08, 2015

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

我们先来看示例:

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

<div class="textC"></div>

<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));">随机切换数字</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("");
 //遍历数组
 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",18*i+"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));  
 }
}
</script>

插件使用非常简单
1. 第一次调用时

NumbersAnimate.Target=$(".textC");
NumbersAnimate.Numbers=12389623;
NumbersAnimate.Duration=1500;
NumbersAnimate.Animate();

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

NumbersAnimate.ChangeNumber();

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

Target:数字的父级容器
Numbers:显示的数字
Duration:滚动速度,单位是毫秒

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

Javascript 相关文章推荐
简易js代码实现计算器操作
Apr 15 Javascript
JS实现时间格式化的方式汇总
Oct 16 Javascript
js同比例缩放图片的小例子
Oct 30 Javascript
js模拟淘宝网的多级选择菜单实现方法
Aug 18 Javascript
纯JavaScript代码实现移动设备绘图解锁
Oct 16 Javascript
JavaScript编程中布尔对象的基本使用
Oct 25 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
Nov 25 Javascript
javascript实现无法关闭的弹框
Nov 27 Javascript
node.js之基础加密算法模块crypto详解
Sep 11 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
Jul 19 Javascript
el-form 多层级表单的实现示例
Sep 10 Javascript
原生JavaScript实现购物车
Jan 10 Javascript
Jquery实现弹性滑块滑动选择数值插件
Aug 08 #Javascript
jQuery实现列表内容的动态载入特效
Aug 08 #Javascript
jQuery实现下拉框选择图片功能实例
Aug 08 #Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
Aug 08 #Javascript
jQuery实现的Div窗口震动效果实例
Aug 07 #Javascript
jQuery实现时尚漂亮的弹出式对话框实例
Aug 07 #Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
Aug 07 #Javascript
You might like
ajax缓存问题解决途径
2006/12/06 PHP
php入门小知识
2008/03/24 PHP
单一index.php实现PHP任意层级文件夹遍历(Zjmainstay原创)
2012/07/31 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
简单实现js间歇或无缝滚动效果
2016/06/29 Javascript
jQuery实现日期联动效果实例
2016/07/26 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
js实现旋转木马效果
2017/03/17 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
Python天气预报采集器实现代码(网页爬虫)
2012/10/07 Python
python处理json数据中的中文
2014/03/06 Python
举例讲解Python中的身份运算符的使用方法
2015/10/13 Python
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
Python简易计算器制作方法代码详解
2019/10/31 Python
python实现高斯投影正反算方式
2020/01/17 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
澳大利亚百货公司:David Jones
2018/02/08 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
2014/07/17 面试题
英语系毕业生自荐信
2013/10/31 职场文书
三年级科学教学反思
2014/01/29 职场文书
致标枪运动员广播稿
2014/02/06 职场文书
外语专业毕业生自荐信
2014/04/14 职场文书
优秀应届本科生求职信
2014/07/19 职场文书
先进典型发言材料
2014/12/30 职场文书
初中教师德育工作总结2015
2015/05/12 职场文书
2016国培学习心得体会
2016/01/08 职场文书