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验证电话号码与手机支持+86的正则表达式
Jan 23 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
Mar 24 Javascript
浏览器兼容的JS写法总结
Apr 27 Javascript
10分钟掌握XML、JSON及其解析
Dec 06 Javascript
jquery dataview数据视图插件使用方法
Dec 23 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
js时间戳与日期格式之间转换详解
Dec 11 Javascript
jquery应用实例分享_实现手风琴特效
Feb 01 jQuery
js+canvas实现验证码功能
Sep 21 Javascript
element form 校验数组每一项实例代码
Oct 10 Javascript
vue-element-admin 菜单标签失效的解决方式
Nov 12 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
Aug 27 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
php递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
PHP从FLV文件获取视频预览图的方法
2015/03/12 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
IE中直接运行显示当前网页中的图片 推荐
2006/08/31 Javascript
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
JavaScript函数、方法、对象代码
2008/10/29 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
利用Python中的pandas库对cdn日志进行分析详解
2017/03/07 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
python微信跳一跳游戏辅助代码解析
2018/01/29 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
Django的性能优化实现解析
2019/07/30 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
Python 求向量的余弦值操作
2021/03/04 Python
波兰品牌内衣及泳装网上商店:Astratex.pl
2017/02/03 全球购物
优秀民警事迹材料
2014/01/29 职场文书
餐厅总厨求职信
2014/03/04 职场文书
保密协议书范本
2014/04/22 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
高中综合实践活动总结
2014/07/07 职场文书
大学生交通专业求职信
2014/09/01 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
2015入党个人自传范文
2015/06/26 职场文书
演讲比赛主持词
2015/06/29 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript