Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Анимация не целых чисел (https://javascript.ru/forum/misc/76210-animaciya-ne-celykh-chisel.html)

zava75 13.12.2018 13:15

Анимация не целых чисел
 
Ребята, я только начал изучать js ? кто нибудь доскажите или само направление как сделать правильно код прописать
$('.animate-math .number').waypoint({

      offset: '100%',
      triggerOnce: true,
      handler: function() {

        var el = $(this.element).length ? $(this.element) : $(this);
        var duration = Math.floor((Math.random() * 1000) + 1000);
        var tos = el.attr('data-to');
		var to = (tos.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 '));
		alert (to);

        $({
          property: 0
        }).animate({
          property: to
        }, {
          duration: duration,
          easing: 'linear',
          step: function() {
            el.text(Math.floor(this.property));
          },
          complete: function() {
            el.text(this.property);
          }
        });

        if (typeof this.destroy !== 'undefined' && $.isFunction(this.destroy)) {
          this.destroy();
        }
      }
    });

alert (to); после анимации получаю nan :help:

Nexus 13.12.2018 13:34

Цитата:

Сообщение от zava75
Ребята, я только начал изучать js ?

Вам виднее.
Цитата:

Сообщение от zava75
alert (to); после анимации получаю nan

Вы уверены, что до анимации у вас в атрибуте "data-to" значение отличается от "nan"?

рони 13.12.2018 13:37

zava75,
$(".animate-math .number").waypoint({
  offset:"100%",
  triggerOnce:true,
  handler:function() {
  var el = $(this.element).length ? $(this.element) : $(this);
  var duration = Math.floor(Math.random() * 1000 + 1000);
  var tos = el.attr("data-to");
  var to = ("" + tos).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, "$1 ");
  alert(to);
  $({property:0}).animate({property:tos}, {duration:duration, easing:"linear", step:function(val) {
    val = Math.round(val);
    val = val.toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, "$1 ");
    el.text(val);
  }, complete:function() {
    el.text(to);
  }});
}});

zava75 13.12.2018 14:57

Цитата:

Сообщение от рони (Сообщение 500466)
zava75,
$(".animate-math .number").waypoint({
  offset:"100%",
  triggerOnce:true,
  handler:function() {
  var el = $(this.element).length ? $(this.element) : $(this);
  var duration = Math.floor(Math.random() * 1000 + 1000);
  var tos = el.attr("data-to");
  var to = ("" + tos).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, "$1 ");
  alert(to);
  $({property:0}).animate({property:tos}, {duration:duration, easing:"linear", step:function(val) {
    val = Math.round(val);
    val = val.toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, "$1 ");
    el.text(val);
  }, complete:function() {
    el.text(to);
  }});
}});

Спасибо! Всё гениальное просто!!!!!!


Часовой пояс GMT +3, время: 18:04.