历史版本3 :JS实现时间齿轮 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 预期效果

大屏场景下,给决策报表或者cpt添加时钟背景

时钟.gif

1.2 实现思路

使用 JS 代码来生成动态背景。

2. 示例编辑

2.1 报表设计

新建决策报表,选中 body 组件,添加初始化后事件,如下图所示:

Snag_47bb309.png

JS 代码如下:

$("body").prepend('<canvas id="canvas" style="position:absolute;z-index:-2;" width="500" height="500"></canvas>');var canvas = document.getElementById("canvas");var ctx = canvas.getContext("2d");ctx.strokeStyle = '#00ffff';ctx.lineWidth = 17;ctx.shadowBlur = 15;ctx.shadowColor = '#00ffff'function degToRad(degree) {var factor = Math.PI / 180;return degree * factor;}function renderTime() {var now = new Date();var today = now.toDateString();var time = now.toLocaleTimeString();var hrs = now.getHours();var min = now.getMinutes();var sec = now.getSeconds();var mil = now.getMilliseconds();var smoothsec = sec + (mil / 1000);var smoothmin = min + (smoothsec / 60);//Backgroundgradient = ctx.createRadialGradient(250, 250, 5, 250, 250, 300);gradient.addColorStop(0, "#03303a");gradient.addColorStop(1, "black");ctx.fillStyle = gradient;//ctx.fillStyle = 'rgba(00 ,00 , 00, 1)';ctx.fillRect(0, 0, 500, 500);//Hoursctx.beginPath();ctx.arc(250, 250, 200, degToRad(270), degToRad((hrs * 30) - 90));ctx.stroke();//Minutesctx.beginPath();ctx.arc(250, 250, 170, degToRad(270), degToRad((smoothmin * 6) - 90));ctx.stroke();//Secondsctx.beginPath();ctx.arc(250, 250, 140, degToRad(270), degToRad((smoothsec * 6) - 90));ctx.stroke();//Datectx.font = "25px Helvetica";ctx.fillStyle = 'rgba(00, 255, 255, 1)'ctx.fillText(today, 175, 250);//Timectx.font = "25px Helvetica Bold";ctx.fillStyle = 'rgba(00, 255, 255, 1)';ctx.fillText(time + ":" + mil, 175, 280);}setInterval(renderTime, 40);

3. 模板下载编辑