Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Обновление картинки по таймеру (https://javascript.ru/forum/events/49592-obnovlenie-kartinki-po-tajjmeru.html)

paveltkachev 20.08.2014 14:51

Нужно же как-то оправдать гигагерцы и гигабайты современных компьютеров. :)

Думаю, что можно вообще без пометки кадра, а просто вести счётчик итерации.

Viral 20.08.2014 15:06

var next, nextid, marker = 0, i = 1, int;
int = setInterval(function () {
    if (marker == 0) {
        marker = 1;
    } else {
        marker = 0;
    }
    document.getElementsByTagName('img')[marker].src = 'http://ftp.sktemp.ru/building8003.jpg?' + Math.random() + '';
    document.getElementsByTagName('img')[marker].style.zIndex = i++;
}, 300);

ага, типа так))

paveltkachev 20.08.2014 15:15

Зачем нужен int?

Viral 20.08.2014 15:20

чтобы, если понадобится, можно было сделать clearInterval() в будущем..

paveltkachev 20.08.2014 15:28

А зачем справа от Math.random() стоит + ''?

Viral 20.08.2014 15:31

у вас в коде было обособлено плюсами, а мне было лениво убирать)))

paveltkachev 20.08.2014 15:36

При таком методе получается, что появляется новый кадр. Потом старый кадр. Потом новый кадр. Посмотрите
http://www.sktemp.spb.ru/nk.html

paveltkachev 20.08.2014 15:36

Дёргается изображение. Чего ранее не было, когда я своё творчество навоял.

Viral 20.08.2014 16:17

ок, извратимся донемогу))

var i = 1, int, cont, img;
cont = document.body;
int = setInterval(function () {

    img = document.createElement('img');
    img.src = 'http://ftp.sktemp.ru/building8003.jpg?' + Math.random() + '';
    img.style.zIndex = i++;
    img.style.position = 'absolute';
    cont.appendChild(img);

    if (document.getElementsByTagName('img').length >= 3) {
        cont.removeChild(document.getElementsByTagName('img')[0]);
    }

}, 300);

paveltkachev 20.08.2014 17:00

У меня теперь в верхнем левом углу в FireFox постоянно мигает символ отсутствующей картинки. Но скачков кадров больше нет. Отчего так?


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