您的代码简单明了。如果没有 jQuery 或 MooTools 你的任务很简单,我认为你不应该尝试使用它们。
对于旋转,我认为 jQuery 或 MooTools 中没有内置工具,但可以在 svg 对象上使用矩阵转换,请阅读:http://msdn.microsoft.com/en-us/library/ie/hh535760%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/ie/hh535760%28v=vs.85%29.aspx
或者检查这个问题:SVG旋转变换矩阵 https://stackoverflow.com/questions/9701784/svg-rotate-transform-matrix .
至于制作一个对象:
当然,您可以将代码分割为更多函数,或者创建一个代表当前小时/分钟/秒的对象
var clock = {
time: {
s: 0,
m: 0,
h: 0
},
pos: {
x: 128,
y: 128
},
.... anything else you might want to add
};
您首先在一组函数中设置其属性
clock.setTime = function (date) {
this.time.s = date.getTime()%60000;
this.time.m = date.getMinutes()*1.0+1.0*nows/60000;
this.time.h = date.getHours()*1.0+1.0*nowm/60;
};
并在另一组函数中读取它们:
clock.getMinPos = function () {
var x = ...;// Sine is ok.
var y = ...;// Cosine is ok.
// I don't like matrices anyway.
return [x, y];
};
实际上只是尝试将代码划分为功能任务。一个函数应该只做一件事。