Извините за этот короткий и бессмысленный заголовок, но это действительно единственный, который действительно описывает мою проблему.Таймер для слайд-шоу ничего не делает
Я хочу (или должен) создать сценарий слайд-шоу, который (если флажок установлен и дается время) автоматически переключает фокус на другое изображение. У меня уже есть все, кроме автоматизации, и в настоящее время я работаю над этим.
Я думал, что для сравнения текущего времени с целевым временем (currentTime + user-input seconds (в Integer)) каждый 1000 миллисекунд будет лучшим способом сделать это. Однако я не понимаю почему, но он не работает. Расчетное целевое время кажется правильным, так как я получаю правильную разницу в заранее рассчитанной date.getTime() и рассчитанной.
Я был бы очень благодарен, если бы вы могли мне помочь.
Вот JS:
var checkbox_checked;
function timerfn() {
if (checkbox_checked === null || checkbox_checked === false) {
checkbox_checked = true;
var targetTime = new Date();
alert(targetTime.getTime());
var target_sec = targetTime.getSeconds() + dauerSwitch;
targetTime.setSeconds(target_sec);
alert(targetTime.getTime());
// update currentTime every 1 Seconds (1000 Milliseconds)
setInterval(function() {
var current_time = Date.now();
if (targetTime.getTime() == current_time) {
gallery("zur");
}
}, 1000);
} else {
checkbox_checked = false;
}
}
А вот HTML:
<form>
<input type="checkbox" id="timer" name="timer" onClick="timerfn()">
<input type="text" id="textbox" name="timerParam"
placeholder="Seconds between slides" value=""
onBlur="boxConv()"> //boxConv just converts the String to an Integer. It also checks if it's only numbers
</form>
Я получаю яваскрипт ошибку на 'вара CURRENT_TIME = новый Date.now();' ', но вар current_time = Date.now() ; работает для меня. –
D'oh, ты прав. Но функция, к сожалению, до сих пор не работает для меня. – xyxl
Совет: используйте console.log() вместо alert(). Найдите консоль, нажав F12 в Chrome или F12 в Firefox, если у вас установлена аддон Firebug. –