jQuery数字滚动(模拟网站人气访问量递增)原创

Posted joyco

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery数字滚动(模拟网站人气访问量递增)原创相关的知识,希望对你有一定的参考价值。

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

技术分享图片

使用方法

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

实例如下:

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>数字滚动效果 jQuery插件</title>
  6     <style type="text/css">
  7         body{
  8             margin: 0;
  9             padding: 0;
 10             font-size: 14px;
 11             background-color: #F6F6F6;
 12             font-weight: normal;
 13             font-family: "Microsoft YaHei";
 14             color: #333333;
 15         }
 16         .runNum{
 17             margin: 0 auto;
 18             padding: 0;
 19             overflow: hidden;
 20             height: 50px;
 21             line-height: 50px;
 22             border-top: #CCCCCC solid 1px;
 23             border-bottom: #CCCCCC solid 1px;
 24             text-align: center;
 25             font-weight: bold;
 26             position: relative;
 27         }
 28         .runNum>li{
 29             list-style: none;
 30             width: 40px;
 31             float: left;
 32             position: absolute;
 33         }
 34     </style>
 35 </head>
 36 <body>
 37 <h2 style="text-align: center;">数字滚动效果 jQuery插件</h2>
 38 <div style="margin: 50px auto;width: 320px;font-size:44px;">
 39     <ul class="runNum" id="test"></ul>
 40 </div>
 41 <h4 style="text-align: center;">&copy;2017 helang版权所有</h4>
 42 <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
 43 <script type="text/javascript">
 44     (function ($) {
 45         /*jQuery对象添加  runNum  方法*/
 46         $.fn.extend({
 47             /*
 48                 *    滚动数字
 49                 *    @ val 值,    params 参数对象
 50                 *    params{addMin(随机最小值),addMax(随机最大值),interval(动画间隔),speed(动画滚动速度),width(列宽),height(行高)}
 51             */
 52             runNum:function (val,params) {
 53                 /*初始化动画参数*/
 54                 var valString = val || ‘70225800‘
 55                 var par= params || {};
 56                 var runNumJson={
 57                     el:$(this),
 58                     value:valString,
 59                     valueStr:valString.toString(10),
 60                     width:par.width || 40,
 61                     height:par.height || 50,
 62                     addMin:par.addMin || 10000,
 63                     addMax:par.addMax || 99999,
 64                     interval:par.interval || 3000,
 65                     speed:par.speed || 1000,
 66                     width:par.width || 40,
 67                     length:valString.toString(10).length
 68                 };
 69                 $._runNum._list(runNumJson.el,runNumJson);
 70                 $._runNum._interval(runNumJson.el.children("li"),runNumJson);
 71             }
 72         });
 73         /*jQuery对象添加  _runNum  属性*/
 74         $._runNum={
 75             /*初始化数字列表*/
 76             _list:function (el,json) {
 77                 var str=‘‘;
 78                 for(var i=0; i<json.length;i++){
 79                     var w=json.width*i;
 80                     var t=json.height*parseInt(json.valueStr[i]);
 81                     var h=json.height*10;
 82                     str +=‘<li style="width:‘+json.width+‘px;left:‘+w+‘px;top: ‘+-t+‘px;height:‘+h+‘px;">‘;
 83                     for(var j=0;j<10;j++){
 84                         str+=‘<div style="height:‘+json.height+‘px;line-height:‘+json.height+‘px;">‘+j+‘</div>‘;
 85                     }
 86                     str+=‘</li>‘;
 87                 }
 88                 el.html(str);
 89             },
 90             /*生成随即数*/
 91             _random:function (json) {
 92                 var Range = json.addMax - json.addMin;
 93                 var Rand = Math.random();
 94                 var num=json.addMin + Math.round(Rand * Range);
 95                 return num;
 96             },
 97             /*执行动画效果*/
 98             _animate:function (el,value,json) {
 99                 for(var x=0;x<json.length;x++){
100                     var topPx=value[x]*json.height;
101                     el.eq(x).animate({top:-topPx+‘px‘},json.speed);
102                 }
103             },
104             /*定期刷新动画列表*/
105             _interval:function (el,json) {
106                 var val=json.value;
107                 setInterval(function () {
108                     val+=$._runNum._random(json);
109                     $._runNum._animate(el,val.toString(10),json);
110                 },json.interval);
111             }
112         }
113     })(jQuery);
114 </script>
115 <script type="text/javascript">
116     $("#test").runNum(52013141);
117 </script>
118 </body>
119 </html>

文章来源:

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

以上是关于jQuery数字滚动(模拟网站人气访问量递增)原创的主要内容,如果未能解决你的问题,请参考以下文章

针对模拟滚动条插件(jQuery.slimscroll.js)的修改

jquery实现的一个导航滚动效果

js 数字随机滚动(数字递增) 每日凌晨回到原点,重新计算

原创游戏我是社长——社团模拟器

效果超赞的单页jQuery插件

使用jQuery滚动到锚链接[重复]