Javascript 如何使用raphael js制作当前时钟

Javascript 如何使用raphael js制作当前时钟,javascript,raphael,Javascript,Raphael,我有一个使用拉斐尔图书馆的时钟代码。我遇到的问题是我无法让它显示当前时间。我的手在适当地移动,但它不会显示“当前时间”。我确信这段代码中有错误。然而,我已经找到了代码,我正在使用它作为我的时钟的基础。我上周开始学习这一点,所以我不确定如何真正做到这一点,以及代码应该说什么 因此,我应该如何将此代码更改为: 使时钟在计算机上显示当前时间。我认为get time函数和get seconds ect应该自动执行此操作 代码如下 代码如下 window.onload = function(){ var

我有一个使用拉斐尔图书馆的时钟代码。我遇到的问题是我无法让它显示当前时间。我的手在适当地移动,但它不会显示“当前时间”。我确信这段代码中有错误。然而,我已经找到了代码,我正在使用它作为我的时钟的基础。我上周开始学习这一点,所以我不确定如何真正做到这一点,以及代码应该说什么

因此,我应该如何将此代码更改为:

使时钟在计算机上显示当前时间。我认为get time函数和get seconds ect应该自动执行此操作

代码如下

代码如下

window.onload = function(){

var canvas = Raphael("pane",0,0,500,500);

canvas.circle(200,150,100).attr("stroke-width",2);
canvas.circle(200,150,3).attr("fill","#000");

var angleplus = 360,rad = Math.PI / 180,
cx = 200,cy =150 ,r = 90,
startangle = -90,angle=30,x,y, endangle;

 for(i=1;i<13;i++)
 {

     endangle = startangle + angle ;

     x = cx + r  * Math.cos(endangle * rad);
     y = cy + r * Math.sin(endangle * rad);

     canvas.text(x,y,i+"");

      startangle = endangle;
 }

var hand = canvas.path("M200 70L200 150").attr("stroke-width",1);
var minute_hand = canvas.path("M200 100L200 150").attr("stroke-width",2);
var hour_hand = canvas.path("M200 110L200 150").attr("stroke-width",3);

var time = new Date();

angle = time.getSeconds() * 6;

minute_hand.rotate(6 * time.getMinutes(),200,150);

var hr = time.getHours();
if(hr>12)
hr = hr -11;

hour_hand.rotate(30 * hr,200,150);

var minute_angle= 6 + time.getMinutes()*6,hour_angle=0.5+   
      time.getMinutes()*30;
setInterval(function(){
                 angle = angle + 6;
                 if(angle>=360)
                 {
                     angle=0;

                minute_hand.rotate(minute_angle,200,150);
                 minute_angle = minute_angle + 6;

                  hour_hand.rotate(hour_angle,200,150);
                      hour_angle = hour_angle + 0.5;
                 }
                  if(minute_angle>=360)
                  {
                      minute_angle=0;

                  }

                 hand.rotate(6,200,150);

                 },1000); 
window.onload=function(){
var canvas=Raphael(“窗格”,0,0500);
canvas.circle(200150100).attr(“笔划宽度”,2);
canvas.circle(200150,3).attr(“fill”,“#000”);
var angleplus=360,rad=Math.PI/180,
cx=200,cy=150,r=90,
星形缠结=-90,角度=30,x,y,端角;
对于(i=1;i12)
hr=hr-11;
时针旋转(30*hr,200150);
变量分钟角度=6+时间。getMinutes()*6,小时角度=0.5+
time.getMinutes()*30;
setInterval(函数(){
角度=角度+6;
如果(角度>=360)
{
角度=0;
分针旋转(分针角度,200150);
分钟角=分钟角+6;
时针旋转(时针角度,200150);
小时角=小时角+0.5;
}
如果(分钟角>=360)
{
分_角=0;
}
手动旋转(620150);
},1000); 

我不确定这与您之前关于这个主题的三个问题有什么根本性的不同。我已经把另一个问题去掉了,碰巧也得到了回答:)现在,我想说,这是一个根本不同的问题!我在JSFIDLE中尝试了这个问题,它看起来像一个时钟。问题是您编写了太多的代码:-)并且有些角度和附加值不一致。还要检查旋转是累积的还是增量的。为了写出好的代码,你需要知道命令手旋转90度是否总是将手放在同一点上,比如说,3点钟,或者手是否在12到3到6到9到12之间以90度的步长旋转最后一种情况是,每次更新时新的rotate命令只能根据更改进行旋转。我将留给您去发现您需要哪一个命令。哦,发布的代码缺少关闭
窗口的最后一个
}
。onload()
函数,为了清晰和适当的缩进,通常需要进行编辑。你知道如何在文本中获取时间吗?基本上,您需要类似于html中的
和JS中的
文档.getElementById('timenow').innerHTML=date.toString()