UNPKG

animate-text

Version:
1 lines 4.58 kB
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("AnimateText",[],e):"object"==typeof exports?exports.AnimateText=e():t.AnimateText=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=3)}([function(t,e,n){"use strict";function i(t){var e=t;if(!e)return console.error("找不到当前节点",t);if("string"==typeof t){var n=t;if(!(e=document.querySelector(n)))return console.error("找不到当前节点",t)}else if("object"===(void 0===t?"undefined":r(t))&&!t.nodeName)return console.error("找不到当前节点",t);return e}Object.defineProperty(e,"__esModule",{value:!0});var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};e.checkNode=i},function(t,e,n){"use strict";function i(t){console.warn(t+" 请参考相关文档: "+r.DOCUMENT_ADDR)}Object.defineProperty(e,"__esModule",{value:!0}),e.showWarn=i;var r=n(2)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.DOCUMENT_ADDR="https://github.com/qgh810/animate-text"},function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=n(0),s=n(1),a=function(){function t(e,n){i(this,t),this.initData(e,n)&&this.init(),this.play=this.play.bind(this)}return r(t,[{key:"initData",value:function(t,e){if(this.el=(0,o.checkNode)(t),this.el){if(e=this.checkOptions(e),this.options=e,e.isNumber){if(this.number=Number(this.el.innerText),!this.number&&0!==this.number)return this.options.isNumber=!1,this.initData(t,this.options);this.startNumber=e.startNumber-0||0,this.changeCount=e.changeCount-0||24}else this.text=this.el.innerText,this.textArr=this.text.split("");return this.isNumber=e.isNumber,this.time=e.time,this.spanClassName=e.spanClassName||"animate-text-span",this.el.innerText="",this.onAnimated=e.onAnimated,!0}}},{key:"checkOptions",value:function(t){"number"==typeof t&&(t={time:t}),t=t||{};var e={time:500,isNumber:!1,startNumber:0,changeCount:32,onAnimated:function(){}};for(var n in e)!t[n]&&(t[n]=e[n]);return t}},{key:"init",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.time;this.isNumber?this.playNumberAnimation(t):this.playTextAnimation(t)}},{key:"playTextAnimation",value:function(t){var e=this,n=[].concat(this.textArr);this.tid=setInterval(function(){var t=n.shift();if(!t)return e.onEnd(),clearInterval(e.tid);var i=document.createElement("span"),r=document.createElement("br");i.className=e.spanClassName,i.innerText=t,e.el.appendChild("\n"===t?r:i)},t/this.textArr.length)}},{key:"playNumberAnimation",value:function(t){var e=this,n=this.changeCount,i=this.number;if(0!==!i){var r=this.getDecimalLength(i),o=this.getDecimalLength(this.startNumber),a=Math.max(r,o),u=this.number-this.startNumber,c=(u/n).toFixed(a)-0;if(0===c)return(0,s.showWarn)("差值过小无法动画"),this.el.innerText=i;var h=this.startNumber;this.tid=setInterval(function(){if(h=(h+c).toFixed(a)-0,Math.abs(h-i)<Math.abs(c))return e.el.innerText=i,e.onEnd(),clearInterval(e.tid);e.el.innerText=h},t/n)}}},{key:"getDecimalLength",value:function(t){var e=t+"";return e.split(".")[1]&&e.split(".")[1].length||0}},{key:"play",value:function(){arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.time;clearInterval(this.tid),this.el.innerText=this.isNumber?this.number:this.text;var t={time:this.time,isNumber:this.isNumber,startNumber:this.startNumber,changeCount:this.changeCount,onAnimated:this.onAnimated,spanClassName:this.spanClassName};this.initData(this.el,t)&&this.init()}},{key:"onEnd",value:function(){var t=this;"function"==typeof this.options.onAnimated&&setTimeout(function(){t.options.onAnimated()},10)}}]),t}();t.exports=a}])});