No Description

index.js 2.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //数字滚动
  2. ;(function($, window, document) {
  3. "use strict";
  4. var defaults = {
  5. deVal: 0, //传入值
  6. className:'dataNums', //样式名称
  7. digit:'' //默认显示几位数字
  8. };
  9. function rollNum(obj, options){
  10. this.obj = obj;
  11. this.options = $.extend(defaults, options);
  12. this.init = function(){
  13. this.initHtml(obj,defaults);
  14. }
  15. }
  16. rollNum.prototype = {
  17. initHtml: function(obj,options){
  18. var strHtml = '<ul class="' + options.className + ' inrow">';
  19. var valLen = options.digit || (options.deVal + '').length;
  20. if(obj.find('.'+options.className).length <= 0){
  21. for(var i = 0; i< valLen; i++){
  22. strHtml += '<li class="dataOne "><div class="dataBoc"><div class="tt" t="38"><span class="num0">0</span> <span class="num1">1</span> <span class="num2">2</span> <span class="num3">3</span> <span class="num4">4</span><span class="num5">5</span> <span class="num6">6</span> <span class="num7">7</span> <span class="num8">8</span> <span class="num9">9</span><span class="num0">0</span> <span class="num1">1</span> <span class="num2">2</span> <span class="num3">3</span> <span class="num4">4</span><span class="num5">5</span> <span class="num6">6</span> <span class="num7">7</span> <span class="num8">8</span> <span class="num9">9</span></div></div></li>';
  23. }
  24. strHtml += '</ul>';
  25. obj.html(strHtml);
  26. }
  27. this.scroNum(obj, options);
  28. },
  29. scroNum: function(obj, options){
  30. var number = options.deVal;
  31. var $num_item = $(obj).find('.' + options.className).find('.tt');
  32. var h = $(obj).find('.dataBoc').height();
  33. $num_item.css('transition','all 2s ease-in-out');
  34. var numberStr = number.toString();
  35. if(numberStr.length <= $num_item.length - 1){
  36. var tempStr = '';
  37. for(var a = 0; a < $num_item.length - numberStr.length; a++){
  38. tempStr += '0';
  39. }
  40. numberStr = tempStr + numberStr;
  41. }
  42. var numberArr = numberStr.split('');
  43. $num_item.each(function(i, item) {
  44. setTimeout(function(){
  45. $num_item.eq(i).css('top',-parseInt(numberArr[i])*h - h*9.8 + 'px');
  46. },i*100)
  47. });
  48. }
  49. }
  50. $.fn.rollNum = function(options){
  51. var $that = this;
  52. var rollNumObj = new rollNum($that, options);
  53. rollNumObj.init();
  54. };
  55. })(jQuery, window, document);
  56. /*
  57. 用法如下
  58. <div id="num"></div>
  59. *
  60. * js:
  61. * $("#dataNums").rollNum({
  62. deVal:9963 //数据
  63. });
  64. *
  65. * */