setInterval()用于模拟时钟
setInterval() for an analogue clock
我对JavaScript很陌生,我在etInterval()
工作时遇到了麻烦。
我正在创建一个模拟时钟作为练习。我有一个函数setTime()
,通过相应地旋转箭头来获取和显示时间。
我想一次又一次地执行这个函数。
下面是我的代码: $(document).ready(function(){
function setTime(){
var d = new Date();
var hour = d.getHours();
var minute = d.getMinutes();
var hourRotation = hour * 30 + (minute / 2);
var minuteRotation = minute * 6;
$("#small").css({
"-webkit-transform": "rotate(" + hourRotation + "deg)",
"-moz-transform": "rotate(" + hourRotation + "deg)",
"-o-transform": "rotate(" + hourRotation + "deg)"
});
$("#big").css({
"-webkit-transform": "rotate(" + minuteRotation + "deg)",
"-moz-transform": "rotate(" + minuteRotation + "deg)",
"-o-transform": "rotate(" + minuteRotation + "deg)"
});
};
function clockStart(){
setInterval(setTime(),1000);
setTime();
}
clockStart();
});
我想了解这个方法以及如何使用它。我能找到的例子看起来很明显,但我仍然不能使它工作。
您正在setInterval()
中进行函数调用。
你要做的是:
setInterval(setTime,1000);
当您调用setInterval
函数时,您不将函数引用作为参数传递,而是将其返回值传递。
所以你应该使用:
setInterval(setTime,1000);
或
setInterval(function(){setTime()},1000);
setInterval(setTime(),1000);
行中的setTime()
函数在调用setInterval()
函数之前被求值,并且setTime()
的求值结果作为参数传递给setInterval()
函数,而不是将函数本身作为参数传递。
你需要做的是用这个函数的名字(" setTime
")替换函数调用(" setTime()
"),像这样:setInterval(setTime, 1000);
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 使用jasmine模拟对服务器的调用
- 模拟谷歌地图中的点击
- 使用模拟按键在输入框中自动输入文本
- 模拟chrome.storage.local函数使用Jasmine
- 从数据库中检索字段,而不模拟它们
- react testUtils模拟点击单选按钮而不触发onchange
- 如何在ember单元测试中模拟_super()方法
- Javascript中对象的每个()的模拟值
- 模拟<按钮>在<asp:button>
- javascript上的数字类型模拟
- 在Android Kitkat上模拟鼠标点击Youtube视频
- Webscratching自动化如何在没有链接TAG的情况下模拟点击HREF链接
- 用jQuery模拟点击
- 如何居中和调整jqwidget模拟时钟的大小
- 使用$timeout与Jasmine's模拟时钟
- JavaScript编程模拟时钟时的问题
- CSS和jQuery模拟时钟-平滑动画
- 模拟时钟发现javascript/html/css不工作
- setInterval()用于模拟时钟