2017-01-04 4 views
0

Это не кажется, не функционирует должным образом:таймер изображение Javascript будет функционировать должным образом

var images = []; 
images.push({src: "http://www.mountsinaiparks.org/digital-yahrzeit/wp-content/themes/yahrzeit-theme/Candle_images/Candle01.gif", timeout: 3600000}); 
images.push({src: "http://www.mountsinaiparks.org/digital-yahrzeit/wp-content/themes/yahrzeit-theme/Candle_images/Candle02.gif", timeout: 16560000}); 
images.push({src: "http://www.mountsinaiparks.org/digital-yahrzeit/wp-content/themes/yahrzeit-theme/Candle_images/Candle03.gif", timeout: 16560000}); 
images.push({src: "http://www.mountsinaiparks.org/digital-yahrzeit/wp-content/themes/yahrzeit-theme/Candle_images/Candle04.gif", timeout: 16560000}); 
images.push({src: "http://www.mountsinaiparks.org/digital-yahrzeit/wp-content/themes/yahrzeit-theme/Candle_images/Candle05.gif", timeout: 16560000}); 
images.push({src: "http://www.mountsinaiparks.org/digital-yahrzeit/wp-content/themes/yahrzeit-theme/Candle_images/candle_end.gif", timeout: 16560000}); 

//Set the interval with the first element 
var x = 0; 
var timeout = window.setTimeout(function() { 
    changeImage() 
}, images[x].timeout); 

function changeImage() { 
    document.getElementById('candle').src = images[x].src; 
    if (x < images.length) { 
    x += 1; 
    } else { 
    x = 0; 
    } 
    timeout = window.setTimeout(function() { 
    changeImage() 
    }, images[x].timeout); 
} 

Таймер работает нормально, если время в секундах, но мне нужно, чтобы это было в часах. В частности, один час для первого изображения, а остальные разделены на 24-часовой период. Может быть, счет секунд слишком длинный? Должно ли быть в миллисекундах?

+0

«Это не работает должным образом: *« не очень объяснительно. Что вы ожидаете и что не так? –

+0

Нет, это все равно не работает ... всякий раз, когда страница перезагружается (и я думаю, что пользователь не будет ждать 24 часа), ваш скрипт и таймер в самом начале ... вам придется найти другой способ решить эту проблему. .. например, используя методы даты ... если цель состоит в том, чтобы показать другое изображение в определенное время дня .... – sinisake

+2

Единственная ошибка в 'if (x

ответ

0

Ну функция требует миллисекунд, но вы можете иметь эту логику преобразования в функции:

function changeImage() { 
    document.getElementById('candle').src = images[x].src; 
     if (x<images.length) { 
     x+=1; 
     }else{ 
     x=0; 
    } 
    var milisecondTimeout = 1000 * 3600 * images[x].timeout; 
    timeout = window.setTimeout(function() {changeImage()}, milisecondTimeout); 
    } 

И тогда вы можете нажать ваши изображения часов вместо миллисекунды:

images.push({src: "http://www.mountsinaiparks.org/digital-yahrzeit/wp-content/themes/yahrzeit-theme/Candle_images/Candle01.gif", timeout: 1}); 

Надеется, что это помогает

+1

Почему это сработало, так как вы ничего не изменили? просто переместите вычисления в другом месте. –

+1

Вопрос заключается в том, чтобы иметь часы ... можете ли вы объяснить отрицательный голос? ... массив изображений в моем решении теперь толкает часы ... и преобразование выполняется внутри функции. Таким образом, у массива могут быть часы вместо длинных чисел, то есть исходный запрос ... @ GabyakaG.Petrioli вы можете объяснить голосование? Проверьте начальный вопрос ... он упомянул, что он хотел нажать массив с часами, что делает мой код. Прокрутите весь путь вправо на второй части кода –

+0

Это помогает :) Evertything помогает. Быть полезным - это здорово, и я ценю КАЖДЫЙ ответ, поскольку я путаюсь в своем изучении этого невероятно трудного предмета в моем возрасте. – scoopzilla

1

setTimeout использует 32-битный int для хранения задержки, поэтому максимальное возможное значение равно 2147483647.

Таким образом, вы получите максимум 596,52 часов, что более чем достаточно для того, что вам нужно.

Но да, это должно быть в миллисекундах, потому что это единственное устройство, которое принимает setTimeout().

Если вы не добавили логику преобразования перед отправкой значений в функцию.

Смежные вопросы