digit.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. export function Digit(a) {
  2. function b(a, b) {
  3. var g, h, e = d(b), f = e.toString().length;
  4. for (g = 0; f > g; g++) h = document.createElement("div"), h.className = "," != e[g] && "." != e[g] ? "to__led-number" : "to__led-number to__led-number--no", h.innerHTML = e[g], a.appendChild(h)
  5. }
  6. function c(a, b, c) {
  7. function i() {
  8. return 9 == h ? h = 0 : h++, h
  9. }
  10. var e, f, g, h, j, k, d = a.childNodes.length - 1;
  11. for (e = 0; e < a.childNodes.length; e++) f = {}, f = "left" == c ? a.childNodes[e] : a.childNodes[d], g = f.innerHTML, h = 0, f.innerHTML = "", "," != g && "." != g && (b.timerTemp += b.single), j = .5 * b.timerTemp / b.speed, k = b.timerTemp - j, ! function (a, b) {
  12. setTimeout(function () {
  13. if (a.innerHTML = b, "," != b && "." != b) {
  14. a.innerHTML = b;
  15. var c = setInterval(function () {
  16. a.innerHTML = i()
  17. }, 50);
  18. setTimeout(function () {
  19. clearInterval(c), a.innerHTML = b
  20. }, 1e3 * k)
  21. } else a.innerHTML = b
  22. }, 1e3 * j)
  23. }(f, g), d--
  24. }
  25. function d(a) {
  26. var c, d, f, g, h;
  27. for (a = a.toString(), c = a.split("."), d = c[0], f = c[1] ? "." + c[1] : '', g = d, h = 1; h <= Math.floor((d.length - 1) / 3); h++) g = e(g, d.length - 3 * h, ",");
  28. return g += f
  29. }
  30. function e(a, b, c) {
  31. return a.slice(0, b) + c + a.slice(b)
  32. }
  33. Digit.prototype.render = function () {
  34. var d = a.direction,
  35. e = a.finish,
  36. f = a.speed,
  37. g = a.number.toString().replace(".", "").length - 1,
  38. h = Number((e / g).toFixed(2)),
  39. i = {
  40. number: g,
  41. single: h,
  42. speed: f,
  43. timerTemp: 0
  44. };
  45. i.timerTemp -= i.single, b(a.dom, a.number, i), c(a.dom, i, d)
  46. }
  47. }