Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Визуальное уменьшение числа (https://javascript.ru/forum/misc/57077-vizualnoe-umenshenie-chisla.html)

AntonMs 18.07.2015 03:07

Визуальное уменьшение числа
 
Есть число 1000, и нужно что-бы оно визуально уменьшилось до 500, типа как в таймере мс.
Звучит просто, но Я почему-то не могу решить, помогите пожалуйста.

Lemme 18.07.2015 08:54

http://jsfiddle.net/qvyuLhn9/ ?

Palama 18.07.2015 09:38

или
place = getElementById("counter");
start = 1000;
stop = 500;
function timer() {
    if (start-- > stop) {
    place.innerHTML = start;
    setTimeout(timer,10);
    }
}
timer();

Lemme 18.07.2015 10:15

Palama, рекурсия,конечно, хорошо, но что, если я захочу сделать так
timer(document.geElementById('counter'), 1000, 500);

p.s открыл твой профиль - уже появился единомышленник=), точнее кто-то сказал это другими словами=)

join 18.07.2015 12:48

Цитата:

Сообщение от Lemme
http://jsfiddle.net/qvyuLhn9/ ?

если я захочу поменять счетчик с 1 до 100 то ваш пример начинает врать:
http://jsfiddle.net/qvyuLhn9/17/

AntonMs 18.07.2015 13:01

Lemme Спасибо, скопипастил)

Lemme 18.07.2015 13:13

join, спасибо за замечание, проглядел ;) Ведь
from-=1 === --from;


AntonMs, отредактируй.
if (from === to){
    clearInterval(timer);
    return;
}

AntonMs 18.07.2015 13:39

Lemme, если с return то итоговое число будет всегда на 1 больше.

Lemme 18.07.2015 13:44

AntonMs, с return
from--;
container.innerHTML = from;

или
container.innerHTML = --from;

или
container.innerHTML = from-=1


Для понимания
var i = 1;
console.log(i--); // 1 - выводим значение переменной i, а потом уменьшаем
сonsole.log(i); // 0

var i = 1;
console.log(--i); // 0 - уменьшаем значение переменной i, а потом выводим. Тоже самое, что i-=1
сonsole.log(i); // 0

AntonMs 18.07.2015 14:03

Спасибо, а то Я сначала не понял что это: --from

Или какая разница -
from--;
container.innerHTML = from;
////
container.innerHTML = from--;


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