Javascript时钟,改变时间

标签 javascript click raphael clock

我正在使用 Raphael 库在 javaScript 中构建一个时钟,但当我单击箭头时,我似乎无法让它永久更改时间,它会将时间更改一小时,但一秒钟后就会更改改回当前的正确时间。

     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.

当单击箭头时,我尝试在小时变量上加上一小时,但一秒钟后又变回来了。因此,我还尝试添加一个名为 multiplier 的变量,并在每次单击箭头时更改该变量,随后更改时间,但我似乎无法访问单击函数中的 multiplier 变量。我不知道为什么会这样,并且非常感谢一些帮助。谢谢。

最佳答案

问题是 startTime 定义了时间校正变量,显示时间并安排自己在一秒钟内再次调用。

如果要保留 startTime 中定义的校正变量而不是每次都重新定义 showTime,则需要单独包含显示时间的函数 showTime 被调用。

showTime 内启动的超时调用将类似于 setTimeout( showTime, 1000);

或者,您可以使用 setInterval( showTime, 1000); 作为从 startTime 外部函数内部启动的持续间隔计时器;

关于Javascript时钟,改变时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35396961/

相关文章:

javascript - 如何使用 Jquery 禁用和重新启用 div 的点击功能

javascript - 向 Raphaël.js 图像元素添加淡入效果的问题

javascript - Raphaeljs : How to get the elements reference back using event. 目标?

jquery - 单击元素时绘制元素的边界框 RaphaelJS

javascript - React Router Link onClick redux Action 调用不调用 reducer

javascript - 如何使用 X-Frame-Options SAMEORIGIN 对来自同一域的页面进行 iframe?

javascript - NextAuth 在 session 回调中抛出 CLIENT_FETCH_ERROR 错误

javascript - 如何使用 jquery 在页面加载时触发 Click

php - 简单的 Javascript 加密,PHP 使用共享 key 解密

angularjs - 将鼠标悬停在重复上并单击菜单 Protractor