Я строю часы в javaScript, используя библиотеку Raphael, но я не могу заставить его постоянно менять часы, когда я нажимаю на стрелки, меняет время на один час, но затем через секунду он вернется к правильному времени, в котором он сейчас находится.Javascript clock, изменяя время
function startTime(){
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
var ny_h = today.getHours()-5;
var hk_h = today.getHours()+8;
var jh_h = today.getHours()+2;
var multiplier = 0;
m = checkTime(m);
s = checkTime(s);
h = checkTime(h);
seconds.animate({transform: [ 'r',((s*6)-180),200,200]});
minute.animate({transform: [ 'r',((m*6)-180),200,200]});
hour.animate({transform: [ 'r',(((h+multiplier)*30)-180),200,200]});
change.click(function(){
var arrow1 = paper.path(up).attr({fill:"black"});
var arrow2 = paper.path(down).attr({fill:"black"});
arrow1.click(function(){
multiplier+=1;
//var h = today.getHours()+1;
});
setTimeout(function(){startTime()},1000);
function checkTime(i) {
if (i < 10) {i = "0" + i}; // add zero in front of numbers < 10
return i;
}
}
startTime(); //Function call that starts the startTime function.
Я попытался плюс один час на переменную часа при нажатии стрелки, но после второй. Поэтому я также попытался добавить переменную, называемую множителем, и изменить ее каждый раз, когда я нажимаю стрелку, а затем меняю время, но я не могу получить доступ к переменной множителя внутри моей функции щелчка. Я не знаю, почему это так и будет очень полезно. Благодарю.
каждый раз, когда вы называете STARTTIME, который когда-либо второй, вы установите множитель к нулю. Таким образом, обновление мультипликатора во вложенном обработчике кликов длится только короткое время ... определение мультипликатора или любая другая длительная коррекция времени должны быть более глобальными. – traktor53