在 RaphaelJS 的 setInterval 中更改文本
Changing text in setInterval in RaphaelJS
基本上我是 JavaScript 的新手,试图创建一个数字手表,我几乎已经完成了,但是时间每次都会自己写第二,不是替换上一次,这是我代码中涉及的部分,你能指出我哪里错了吗!谢谢
P.S: 我正在使用 raphael 库
setInterval(function(){
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
if (h<10){h="0"+h};
if (m<10){m="0"+m};
if (s<10){s="0"+s};
time = h+":"+m+":"+s;
var digi = paper.text(110, 250, time).attr({"font-size": 15, "fill": "#000080"});
}, 1000);
我试过放线
digi.attr({'text': time});
在函数关闭之前,但这并没有奏效。任何帮助都会很棒!
您需要删除旧元素,或者只更改其属性(我认为您的更新版本可能不起作用,因为您将 digi 作为包含在功能范围内的变量,您可以尝试将其设为全局范围或其他. 否则这是一个解决方案...
var digi;
...
digi && digi.remove();
在开始打印时间之前清除canvas。
添加这一行:
paper.clear();
在您打印时间的行之前。
基本上我是 JavaScript 的新手,试图创建一个数字手表,我几乎已经完成了,但是时间每次都会自己写第二,不是替换上一次,这是我代码中涉及的部分,你能指出我哪里错了吗!谢谢
P.S: 我正在使用 raphael 库
setInterval(function(){
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();
var s = d.getSeconds();
if (h<10){h="0"+h};
if (m<10){m="0"+m};
if (s<10){s="0"+s};
time = h+":"+m+":"+s;
var digi = paper.text(110, 250, time).attr({"font-size": 15, "fill": "#000080"});
}, 1000);
我试过放线
digi.attr({'text': time});
在函数关闭之前,但这并没有奏效。任何帮助都会很棒!
您需要删除旧元素,或者只更改其属性(我认为您的更新版本可能不起作用,因为您将 digi 作为包含在功能范围内的变量,您可以尝试将其设为全局范围或其他. 否则这是一个解决方案...
var digi;
...
digi && digi.remove();
在开始打印时间之前清除canvas。
添加这一行:
paper.clear();
在您打印时间的行之前。