插件描述:实现数字上下滚动,模拟网站人气、访问量递增的动画效果,兼容性如下:

使用方法

$(el).runNum(val,params);
 

参数详解

val:数值型(默认70225800);

parameters:对象({addMin(随机最小值),addMax(随机最大值),interval(动画间隔),speed(动画滚动速度),width(列宽),height(行高)})

可直接查看源文件,样式及位置可自己修改CSS即可!

源码如下:

 (function ($) {
/*jQuery对象添加 runNum 方法*/
$.fn.extend({
/*
* 滚动数字
* @ val 值, params 参数对象
* params{addMin(随机最小值),addMax(随机最大值),interval(动画间隔),speed(动画滚动速度),width(列宽),height(行高)}
*/
runNum:function (val,params) {
/*初始化动画参数*/
var valString = val || '70225800'
var par= params || {};
var runNumJson={
el:$(this),
value:valString,
valueStr:valString.toString(10),
width:par.width || 40,
height:par.height || 50,
addMin:par.addMin || 10000,
addMax:par.addMax || 99999,
interval:par.interval || 3000,
speed:par.speed || 1000,
width:par.width || 40,
length:valString.toString(10).length
};
$._runNum._list(runNumJson.el,runNumJson);
$._runNum._interval(runNumJson.el.children("li"),runNumJson);
}
});
/*jQuery对象添加 _runNum 属性*/
$._runNum={
/*初始化数字列表*/
_list:function (el,json) {
var str='';
for(var i=0; i<json.length;i++){
var w=json.width*i;
var t=json.height*parseInt(json.valueStr[i]);
var h=json.height*10;
str +='<li style="width:'+json.width+'px;left:'+w+'px;top: '+-t+'px;height:'+h+'px;">';
for(var j=0;j<10;j++){
str+='<div style="height:'+json.height+'px;line-height:'+json.height+'px;">'+j+'</div>';
}
str+='</li>';
}
el.html(str);
},
/*生成随即数*/
_random:function (json) {
var Range = json.addMax - json.addMin;
var Rand = Math.random();
var num=json.addMin + Math.round(Rand * Range);
return num;
},
/*执行动画效果*/
_animate:function (el,value,json) {
for(var x=0;x<json.length;x++){
var topPx=value[x]*json.height;
el.eq(x).animate({top:-topPx+'px'},json.speed);
}
},
/*定期刷新动画列表*/
_interval:function (el,json) {
var val=json.value;
setInterval(function () {
val+=$._runNum._random(json);
$._runNum._animate(el,val.toString(10),json);
},json.interval);
}
}
})(jQuery);

实例如下:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>数字滚动效果 jQuery插件</title>
<style type="text/css">
body{
margin: 0;
padding: 0;
font-size: 14px;
background-color: #F6F6F6;
font-weight: normal;
font-family: "Microsoft YaHei";
color: #333333;
}
.runNum{
margin: 0 auto;
padding: 0;
overflow: hidden;
height: 50px;
line-height: 50px;
border-top: #CCCCCC solid 1px;
border-bottom: #CCCCCC solid 1px;
text-align: center;
font-weight: bold;
position: relative;
}
.runNum>li{
list-style: none;
width: 40px;
float: left;
position: absolute;
}
</style>
</head>
<body>
<h2 style="text-align: center;">数字滚动效果 jQuery插件</h2>
<div style="margin: 50px auto;width: 320px;font-size:44px;">
<ul class="runNum" id="test"></ul>
</div>
<h4 style="text-align: center;">&copy;2017 helang版权所有</h4>
<script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
<script type="text/javascript">
(function ($) {
/*jQuery对象添加 runNum 方法*/
$.fn.extend({
/*
* 滚动数字
* @ val 值, params 参数对象
* params{addMin(随机最小值),addMax(随机最大值),interval(动画间隔),speed(动画滚动速度),width(列宽),height(行高)}
*/
runNum:function (val,params) {
/*初始化动画参数*/
var valString = val || '70225800'
var par= params || {};
var runNumJson={
el:$(this),
value:valString,
valueStr:valString.toString(10),
width:par.width || 40,
height:par.height || 50,
addMin:par.addMin || 10000,
addMax:par.addMax || 99999,
interval:par.interval || 3000,
speed:par.speed || 1000,
width:par.width || 40,
length:valString.toString(10).length
};
$._runNum._list(runNumJson.el,runNumJson);
$._runNum._interval(runNumJson.el.children("li"),runNumJson);
}
});
/*jQuery对象添加 _runNum 属性*/
$._runNum={
/*初始化数字列表*/
_list:function (el,json) {
var str='';
for(var i=0; i<json.length;i++){
var w=json.width*i;
var t=json.height*parseInt(json.valueStr[i]);
var h=json.height*10;
str +='<li style="width:'+json.width+'px;left:'+w+'px;top: '+-t+'px;height:'+h+'px;">';
for(var j=0;j<10;j++){
str+='<div style="height:'+json.height+'px;line-height:'+json.height+'px;">'+j+'</div>';
}
str+='</li>';
}
el.html(str);
},
/*生成随即数*/
_random:function (json) {
var Range = json.addMax - json.addMin;
var Rand = Math.random();
var num=json.addMin + Math.round(Rand * Range);
return num;
},
/*执行动画效果*/
_animate:function (el,value,json) {
for(var x=0;x<json.length;x++){
var topPx=value[x]*json.height;
el.eq(x).animate({top:-topPx+'px'},json.speed);
}
},
/*定期刷新动画列表*/
_interval:function (el,json) {
var val=json.value;
setInterval(function () {
val+=$._runNum._random(json);
$._runNum._animate(el,val.toString(10),json);
},json.interval);
}
}
})(jQuery);
</script>
<script type="text/javascript">
$("#test").runNum(52013141);
</script>
</body>
</html>

文章来源:

http://www.jq22.com/jquery-info16526

jQuery数字滚动(模拟网站人气、访问量递增)原创的更多相关文章

  1. jquery 数字滚动方法

    jquery 数字滚动方法用的是countUp.js这个插件 target = 目标元素的 ID:startVal = 开始值:endVal = 结束值:decimals = 小数位数,默认值是0:d ...

  2. jQuery 数字滚动插件

    这几天闲来没事写的,有不对的地方还请多多指点 CSS: ; padding:0 2px;} .digital-beating i {;; background:url(../images/icon_0 ...

  3. jQuery页面滚动数字增长插件

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. jQuery防京东浮动网站楼层导航代码

    jQuery防京东浮动网站楼层导航代码   <!DOCTYPE html > <html xmlns="http://www.w3.org/1999/xhtml" ...

  5. Vue.js大屏数字滚动翻转效果

    ================================ 大屏数字滚动翻转效果来源于最近工作中element后台管理页面一张大屏的UI图,该UI图上有一个模块需要有数字往上翻动的效果,以下是最 ...

  6. 【精心推荐】12款很好用的 jQuery 图片滚动插件

    这里收集了12款很好用的 jQuery 图片滚动插件分享给大家.jQuery 作为最流行的 JavaScript 框架,使用简单灵活,同时还有许多优秀的插件可供使用.其中最令人印象深刻的应用之一就是各 ...

  7. Flexslider - 响应式的 jQuery 内容滚动插件

    FlexSlider 是一款轻量的响应式 jQuery 内容滚动插件,能够帮助你在项目轻松的创建漂亮的内容滚动效果.这款插件曾经连续多年入选 WDL 的年度最佳 jQuery 插件,值得大家在网站开发 ...

  8. Jquery控制滚动显示欢迎字幕v2

    Jquery控制滚动显示欢迎字幕v2: 之前做的那个比较适合测试环境,但要套入到网站中,有两个按钮在那摆着,还是不太好看.后面对代码进行了修改,如下: 参考代码: <html> <h ...

  9. 10款很好用的 jQuery 图片滚动插件

    jQuery 作为最流行的 JavaScript 框架,使用简单灵活,同时还有许多优秀的插件可供使用.其中最令人印象深刻的应用之一就是各种很酷的图片效果,它可以让的网站更具吸引力.这里收集了10款很好 ...

随机推荐

  1. Python3-join()和split()

    Python join()方法 Python join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串. #例如:列表 -- 字符串 str.join(sequence) 参数: sequ ...

  2. webstorm的快捷键总结

    ctrl+shift+f 可以在项目和模块中的文件中查找特定字符串 shift键连续敲一下,可以在项目和模块中查找特定的文件 ctrl+d  复制当前行并粘贴到下一行 ctrl+shift+上下方向键 ...

  3. 题解-bzoj3901 棋盘游戏

    2019年第一篇文章 (。・∀・)ノ゙ Problem bzoj无良权限题,拿学长的号交的 题目概要:给定一个\(n\times n\)的矩阵.令\(x=\frac {n+1}2\).可以进行任意次以 ...

  4. RabbitMQ 选型和对比

    背景 这个纯粹是记下知识点,知道自己在这个时候了解过这个技术.技术点网上很多,就不多说了.只是想起多年前做过的一次项目,是多个项目整合,各种数据库,java和c#项目,互相调来调去,甚至直接链接对方数 ...

  5. makefile 中添加依赖的库文件

    当库文件中包含多个头文件和c源文件时,需要执行如下步骤: 1) makefile中添加 库文件依赖, -L 后面跟库文件的路径,  -l(小写)后面跟库的名字 2)将库文件中的头文件添加到工程中去,使 ...

  6. nginx多虚拟主机优先级location匹配规则及tryfiles的使用

    nginx多虚拟主机优先级location匹配规则及tryfiles的使用 .相同server_name多个虚拟主机优先级访问 .location匹配优先级 .try_files使用 .nginx的a ...

  7. CentOS入门

    1.因修改/etc/sudoers权限导致sudo和su不能使用问题 https://blog.csdn.net/u014029448/article/details/80944380 2.给用户分配 ...

  8. JMeter3.2生成图形化HTML报告

    JMeter3.0引入了Dashboard Report,用于生成HTML页面格式图形化报告的扩展模块. 该模块支持通过两种方式生成多维度图形化测试报告: 在JMeter性能测试结束时,自动生成本次测 ...

  9. python-进程之间通信、多线程介绍

    一.进程之间通信 进程的任务有三种状态:运行,就绪,阻塞. 加锁可以让多个进程修改同一块数据时,同一时间只能由一个任务可以进行修改,即串行的修改.牺牲了速度,保证了数据安全. 虽然可以使用文件共享数据 ...

  10. Java链表讲解

    主要讲述几点: 一.链表的简介 二.链表实现原理和必要性 三.单链表示例 四.双链表示例 一.链表的简介 链表是一种比较常用的数据结构,链表虽然保存比较复杂,但是在查询时候比较便捷,在多种计算机语言都 ...