Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.12.2015, 12:31
Новичок на форуме
Отправить личное сообщение для akkord87 Посмотреть профиль Найти все сообщения от akkord87
 
Регистрация: 04.06.2014
Сообщений: 9

Анимация числа, при изменении ширина HTML элемента
Здравствуйте! Помогите разобраться с динамической анимацией числа в блоке, интересует решение только на чистом javascript.

Имеется блок с размерами 25 на 25px, в блоке находится число (0%), при клике по этому блоку происходит событие, которое задает блоку величину (в данном случае 75%), после чего его ширина плавно увеличивается на заданную величину. Но как привязать это динамическое увеличение и к числу, чтобы увеличение числа так же происходило синхронно при увеличении ширины блока до заданного числа, то есть до 75%?

Вот пример http://jsfiddle.net/...mbedded/result/

Может есть какое то событие, которое отслеживает состояние блока?

Буду благодарен, если подтолкнете в нужном направлении
Ответить с цитированием
  #2 (permalink)  
Старый 15.12.2015, 12:33
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

akkord87, а что заставляет изменять ширину блока? Вот туда и нужно просто добавить ещё и изменение числа.
Ответить с цитированием
  #3 (permalink)  
Старый 15.12.2015, 12:44
Новичок на форуме
Отправить личное сообщение для akkord87 Посмотреть профиль Найти все сообщения от akkord87
 
Регистрация: 04.06.2014
Сообщений: 9

Сообщение от Ruslan_xDD Посмотреть сообщение
akkord87, а что заставляет изменять ширину блока? Вот туда и нужно просто добавить ещё и изменение числа.
Ок, а не подскажите, как изменить это число? При помощи setInterval? Или есть более удобные способы? Просто нужно добиться, чтобы увеличение числа и изменение ширины этого блока происходило одновременно.
Ответить с цитированием
  #4 (permalink)  
Старый 15.12.2015, 12:57
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

akkord87, там при изменении блока, у самого скрипта, который меняет этот блок, у него должно быть событие изменения размера - туда и подставляйте.

this.innerHTML = this.style.width;
Ответить с цитированием
  #5 (permalink)  
Старый 15.12.2015, 13:28
Новичок на форуме
Отправить личное сообщение для akkord87 Посмотреть профиль Найти все сообщения от akkord87
 
Регистрация: 04.06.2014
Сообщений: 9

Это понятно) Не понятно, как сделать так, чтобы увеличение числа шло плавно (анимировано) 0% 1% 2% 3% ... 75% http://goo.gl/3VH4ID
Ответить с цитированием
  #6 (permalink)  
Старый 15.12.2015, 14:55
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Окно с баром прогресса на время
Ответить с цитированием
  #7 (permalink)  
Старый 15.12.2015, 15:17
Новичок на форуме
Отправить личное сообщение для akkord87 Посмотреть профиль Найти все сообщения от akkord87
 
Регистрация: 04.06.2014
Сообщений: 9

Интересный пример) Но мне нужно увеличить число от 0 до 75%, анимировать сам процесс увеличения)
Ответить с цитированием
  #8 (permalink)  
Старый 15.12.2015, 15:21
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

akkord87,
Нет разницы от скольки и до скольки увеличивать, это настраивается стилями. И время анимации тоже.
Ответить с цитированием
  #9 (permalink)  
Старый 15.12.2015, 15:26
Новичок на форуме
Отправить личное сообщение для akkord87 Посмотреть профиль Найти все сообщения от akkord87
 
Регистрация: 04.06.2014
Сообщений: 9

Сообщение от tsigel Посмотреть сообщение
akkord87,
Нет разницы от скольки и до скольки увеличивать, это настраивается стилями. И время анимации тоже.
А как сделать анимацию увеличения числа процентов?
Ответить с цитированием
  #10 (permalink)  
Старый 15.12.2015, 15:34
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Ой, html стилями менять не выйдет, не внимательно посмотрел.

<div style="background: green; width: 0%">0%</div>

<script>

var animate = function (options) {
        var start = Date.now(); // сохранить время начала

        requestAnimationFrame(function tick() {
            var timePassed = Date.now() - start;
            var progress = timePassed / options.duration;
            var timeFunction = options.timeFunction || function (progress) {
                        return progress;
                    };
            progress = progress > 1 ? 1 : progress;

            options.step(timeFunction(progress));

            if (progress === 1) {
                options.complete();
            } else {
                requestAnimationFrame(tick);
            }

        });
    };

var div = document.querySelector('div');

animate({
   duration: 5000,
   step: function (progress) {
      var percent = Math.round(75 * progress) + '%';
      div.innerHTML = percent;
      div.style.width = 75 * progress + '%';
   },
   complete: function () {}
});

</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое изменение цены при изменении количества товара MrNix21 Элементы интерфейса 9 08.12.2013 21:47
Изменение размера элемента при клике Derekovich Элементы интерфейса 25 05.12.2013 20:45
Как сохранить обработчики элемента, при изменения положения элемента в dom-дереве ? Danxil Events/DOM/Window 5 08.11.2013 23:33
Помогите с калькулятором piton1175 AJAX и COMET 0 16.06.2011 14:29
выполнение ф-ии при изменении состояния radio MaxB Events/DOM/Window 5 24.06.2009 14:24