concise-clock
Version:
一个基于h5 canvas的模拟时钟javascript程序
97 lines (96 loc) • 2.97 kB
TypeScript
interface Option {
/**模拟时钟大小 */
size?: number;
/**canvas画布内边距 */
padding?: number;
/**边框宽度 */
borderWidth?: number;
/**边框颜色 */
borderColor?: string;
/**边框背景图片,优先级高于borderColor */
borderImage?: string;
/**背景色,默认white */
backgroundColor?: string;
/**背景图片,优先级高于backgroundColor */
backgroundImage?: string;
/**背景图片的显示模式 */
backgroundMode?: "part" | "full";
/**背景图片的透明度,默认0.5 */
backgroundAlpha?: number;
/**显示的刻度类型,默认值arabic, roman:罗马数字,arabic:阿拉伯数字,none:不显示 */
scaleType?: "arabic" | "roman" | "none";
/**刻度线颜色 */
scaleColor?: string;
/**显示的小时文字颜色 */
hourColor?: string;
/**指针类型 line:线条 triangle:三角形 */
handType?: "line" | "triangle";
/**秒针颜色 */
secondHandColor?: string;
/**分针颜色 */
minuteHandColor?: string;
/**时针颜色 */
hourHandColor?: string;
/**是否显示阴影 */
showShadow?: boolean;
/**图片加载完成回调 */
onload?(clock: Clock): any;
}
export default class Clock {
/**默认选项 */
private options;
private interval;
private hours;
private largeScale;
private smallScale;
private hourFontSize;
private headLen;
private secondHandLen;
private minuteHandLen;
private hourHandLen;
private borderPattern;
private backgroundImage?;
/**画布大小的一半 */
private halfSize;
/**外面传过来的要显示的canvas */
private container?;
private ctx;
/**表盘 */
private dialCanvas;
private dialCtx;
constructor(canvas: HTMLCanvasElement | string, options?: Option);
private init;
/**
* 极坐标转平移后画布坐标
* ps:极坐标极轴水平向上,角度正方向顺时针
* ps:画布坐标是平移后的画布坐标,坐标原点画布中心,x轴水平向右,y轴竖直向下
* @param r 当前点到原点的长度
* @param radian 弧度
*/
private polarCoordinates2canvasCoordinates;
/**绘制小时的文字 */
private drawHours;
private createImage;
private createPattern;
/**绘制表盘 */
private drawDial;
/**绘制时针 */
private drawHand;
/**绘制指针 */
private drawNeedle;
/**
* 更新options,调用此方法可更新模拟时钟的一些属性
* @param options
*/
setOptions(options?: Option): void;
/**
* 显示一个时间
* @param time 默认值当前时间
*/
show(time?: Date | string): this;
/**运行模拟时钟 */
run(): this;
/**停止模拟时钟 */
stop(): void;
}
export {};