国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

高效的jquery數(shù)字滾動(dòng)特效

2019-11-20 11:00:10
字體:
供稿:網(wǎng)友

本文實(shí)例講述了基于jquery數(shù)字滾動(dòng)特效的代碼,分為四種情況分享給大家供大家參考,具體如下:

  • 有分隔符,有小數(shù)點(diǎn):<div class="numberRun"></div> <br><br>
  • 只有分隔符:<div class="numberRun2"></div> <br><br>
  • 只有小數(shù)點(diǎn):<div class="numberRun3"></div> <br><br>
  • 無分隔符,無小數(shù)點(diǎn):<div class="numberRun4"></div>

運(yùn)行效果圖:

具體代碼如下

<html><head><title>數(shù)字滾動(dòng)插件</title><meta charset="gb2312"><script src="http://cdn.bootcss.com/jquery/1.8.3/jquery.min.js"></script><style>/*數(shù)字滾動(dòng)插件的CSS可調(diào)整樣式*/.mt-number-animate{ font-family: '微軟雅黑'; line-height:40px; height: 40px;/*設(shè)置數(shù)字顯示高度*/; font-size: 36px;/*設(shè)置數(shù)字大小*/ overflow: hidden; display: inline-block; position: relative; }.mt-number-animate .mt-number-animate-dot{ width: 15px;/*設(shè)置分割符寬度*/ line-height: 40px; float: left; text-align: center;}.mt-number-animate .mt-number-animate-dom{ width: 20px;/*設(shè)置單個(gè)數(shù)字寬度*/ text-align: center; float: left; position: relative; top: 0;}.mt-number-animate .mt-number-animate-dom .mt-number-animate-span{ width: 100%; float: left;}</style></head><body><br><br>有分隔符,有小數(shù)點(diǎn):<div class="numberRun"></div> <br><br>只有分隔符:<div class="numberRun2"></div> <br><br>只有小數(shù)點(diǎn):<div class="numberRun3"></div> <br><br>無分隔符,無小數(shù)點(diǎn):<div class="numberRun4"></div> </body><script>/***  by Mantou qq:676015863*  數(shù)字滾動(dòng)插件 v1.0*/;(function($) {  $.fn.numberAnimate = function(setting) {    var defaults = {      speed : 1000,//動(dòng)畫速度      num : "", //初始化值      iniAnimate : true, //是否要初始化動(dòng)畫效果      symbol : '',//默認(rèn)的分割符號(hào),千,萬,千萬      dot : 0 //保留幾位小數(shù)點(diǎn)    }    //如果setting為空,就取default的值    var setting = $.extend(defaults, setting);     //如果對(duì)象有多個(gè),提示出錯(cuò)    if($(this).length > 1){      alert("just only one obj!");      return;    }     //如果未設(shè)置初始化值。提示出錯(cuò)    if(setting.num == ""){      alert("must set a num!");      return;    }    var nHtml = '<div class="mt-number-animate-dom" data-num="{{num}}">/            <span class="mt-number-animate-span">0</span>/            <span class="mt-number-animate-span">1</span>/            <span class="mt-number-animate-span">2</span>/            <span class="mt-number-animate-span">3</span>/            <span class="mt-number-animate-span">4</span>/            <span class="mt-number-animate-span">5</span>/            <span class="mt-number-animate-span">6</span>/            <span class="mt-number-animate-span">7</span>/            <span class="mt-number-animate-span">8</span>/            <span class="mt-number-animate-span">9</span>/            <span class="mt-number-animate-span">.</span>/          </div>';     //數(shù)字處理    var numToArr = function(num){      num = parseFloat(num).toFixed(setting.dot);      if(typeof(num) == 'number'){        var arrStr = num.toString().split("");        }else{        var arrStr = num.split("");      }      //console.log(arrStr);      return arrStr;    }     //設(shè)置DOM symbol:分割符號(hào)    var setNumDom = function(arrStr){      var shtml = '<div class="mt-number-animate">';      for(var i=0,len=arrStr.length; i<len; i++){        if(i != 0 && (len-i)%3 == 0 && setting.symbol != "" && arrStr[i]!="."){          shtml += '<div class="mt-number-animate-dot">'+setting.symbol+'</div>'+nHtml.replace("{{num}}",arrStr[i]);        }else{          shtml += nHtml.replace("{{num}}",arrStr[i]);        }      }      shtml += '</div>';      return shtml;    }     //執(zhí)行動(dòng)畫    var runAnimate = function($parent){      $parent.find(".mt-number-animate-dom").each(function() {        var num = $(this).attr("data-num");        num = (num=="."?10:num);        var spanHei = $(this).height()/11; //11為元素個(gè)數(shù)        var thisTop = -num*spanHei+"px";        if(thisTop != $(this).css("top")){          if(setting.iniAnimate){            //HTML5不支持            if(!window.applicationCache){              $(this).animate({                top : thisTop              }, setting.speed);            }else{              $(this).css({                'transform':'translateY('+thisTop+')',                '-ms-transform':'translateY('+thisTop+')',   /* IE 9 */                '-moz-transform':'translateY('+thisTop+')',  /* Firefox */                '-webkit-transform':'translateY('+thisTop+')', /* Safari 和 Chrome */                '-o-transform':'translateY('+thisTop+')',                '-ms-transition':setting.speed/1000+'s',                '-moz-transition':setting.speed/1000+'s',                '-webkit-transition':setting.speed/1000+'s',                '-o-transition':setting.speed/1000+'s',                'transition':setting.speed/1000+'s'              });             }          }else{            setting.iniAnimate = true;            $(this).css({              top : thisTop            });          }        }      });    }     //初始化    var init = function($parent){      //初始化      $parent.html(setNumDom(numToArr(setting.num)));      runAnimate($parent);    };     //重置參數(shù)    this.resetData = function(num){      var newArr = numToArr(num);      var $dom = $(this).find(".mt-number-animate-dom");      if($dom.length < newArr.length){        $(this).html(setNumDom(numToArr(num)));      }else{        $dom.each(function(index, el) {          $(this).attr("data-num",newArr[index]);        });      }      runAnimate($(this));    }    //init    init($(this));    return this;  }})(jQuery); $(function(){   //初始化  var numRun = $(".numberRun").numberAnimate({num:'15343242.10', dot:2, speed:2000, symbol:","});  var nums = 15343242.10;  setInterval(function(){    nums+= 3433.24;    numRun.resetData(nums);  },3000);    var numRun2 = $(".numberRun2").numberAnimate({num:'15343242', speed:2000, symbol:","});  var nums2 = 15343242;  setInterval(function(){    nums2+= 1433;    numRun2.resetData(nums2);  },2000);    var numRun3 = $(".numberRun3").numberAnimate({num:'52353434.343', dot:3, speed:2000});  var nums3 = 52353434.343;  setInterval(function(){    nums3+= 454.521;    numRun3.resetData(nums3);  },4000);   var numRun4 = $(".numberRun4").numberAnimate({num:'52353434', speed:2000});  var nums4 = 52353434;  setInterval(function(){    nums4+= 123454;    numRun4.resetData(nums4);  },3500); });</script></html>

代碼復(fù)制即可運(yùn)行。

希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 卓尼县| 阆中市| 东丽区| 兰西县| 廊坊市| 庆元县| 凤凰县| 石屏县| 新宾| 林州市| 黑水县| 浠水县| 永春县| 南安市| 神池县| 庆城县| 鲁山县| 离岛区| 宁武县| 桂东县| 侯马市| 云梦县| 新闻| 石城县| 永靖县| 若羌县| 绥芬河市| 平果县| 精河县| 宜兰县| 灯塔市| 开化县| 五莲县| 奉节县| 万山特区| 渭南市| 望城县| 北安市| 鲁甸县| 滨海县| 靖边县|