使用html5画一个时钟表

本文介绍了如何使用HTML5绘制一个动态时钟,包括时针、分针和秒针的绘制,以及背景圆、数字和秒刻度点的创建。虽然截图无法展示动态效果,但完整代码将展示整个时钟的实现过程。
摘要由CSDN通过智能技术生成

效果图

这里写图片描述
时钟是可以动态显示的,因为是截图,所以看不出秒针、分针的动态

1.主体代码

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <meta name="Generator" content="EditPlus®">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <title>时钟</title>
 </head>

    <style type="text/css">
        div{
            text-align:center;
            margin-top:250px;
        }
        #clock{
            /*边框主要为了,前期方便绘画,后期可以自行清楚*/
            border:1px solid #ccc;
        }
    </style>


 <body>

    <div>
        <canvas id="clock" height="300px" width="300px"></canvas>
    </div>

    <script type="text/javascript">
        //下面所有的javascript代码都写在这里的哟
    </script>
 </body>
</html>

2.画背景:最外层的圆、数字、以及秒刻度的点

var dom = document.getElementById("clock");
var ctx = dom.getContext("2d");
var width = ctx.canvas.width;
var height = ctx.canvas.height;
var r = width / 2;

function drawBackgroundCircle(){
   
    //画最外层的圆
    ctx.translate(r,r);
    ctx.lineWidth = 6;
    ctx.beginPath();
    ctx.arc(0,0,r - 3,0,2*Math.PI,false);
  
你可以使用HTML5的canvas元素和JavaScript来制作一个圆形钟表。下面是一个简单的示例代码: ```html <!DOCTYPE html> <html> <head> <style> #canvas { border: 1px solid black; } </style> </head> <body> <canvas id="canvas" width="400" height="400"></canvas> <script> // 获取布元素 var canvas = document.getElementById("canvas"); var ctx = canvas.getContext("2d"); // 设置钟表参数 var radius = canvas.width / 2 - 10; var centerX = canvas.width / 2; var centerY = canvas.height / 2; // 绘制钟表 function drawClock() { // 清除布 ctx.clearRect(0, 0, canvas.width, canvas.height); // 绘制钟表外圆 ctx.beginPath(); ctx.arc(centerX, centerY, radius, 0, Math.PI * 2); ctx.strokeStyle = "black"; ctx.lineWidth = 2; ctx.stroke(); ctx.closePath(); // 绘制钟表刻度 for (var i = 0; i < 12; i++) { var angle = i * (Math.PI / 6); var x = centerX + radius * Math.cos(angle); var y = centerY + radius * Math.sin(angle); ctx.beginPath(); ctx.arc(x, y, 5, 0, Math.PI * 2); ctx.fillStyle = "black"; ctx.fill(); ctx.closePath(); } // 绘制钟表指针 var now = new Date(); var hour = now.getHours(); var minute = now.getMinutes(); var second = now.getSeconds(); // 绘制针 var hourAngle = (hour % 12 + minute / 60 + second / 3600) * (Math.PI / 6); drawHand(hourAngle, radius * 0.5, 8, "black"); // 绘制分针 var minuteAngle = (minute + second / 60) * (Math.PI / 30); drawHand(minuteAngle, radius * 0.8, 4, "black"); // 绘制秒针 var secondAngle = (second + now.getMilliseconds() / 1000) * (Math.PI / 30); drawHand(secondAngle, radius * 0.9, 2, "red"); // 更新钟表 setTimeout(function() { requestAnimationFrame(drawClock); }, 1000); } // 绘制钟表指针 function drawHand(angle, length, width, color) { var x = centerX + length * Math.cos(angle - Math.PI / 2); var y = centerY + length * Math.sin(angle - Math.PI / 2); ctx.beginPath(); ctx.moveTo(centerX, centerY); ctx.lineTo(x, y); ctx.strokeStyle = color; ctx.lineWidth = width; ctx.stroke(); ctx.closePath(); } // 启动钟表 drawClock(); </script> </body> </html> ``` 在这个示例中,我们使用`<canvas>`元素创建了一个400x400像素大小的布,并通过JavaScript获取到了布的上下文对象`ctx`。然后,我们在`drawClock`函数中使用`ctx`对象来绘制钟表的外圆、刻度和指针。 请注意,这只是一个简单的示例,你可以自行修改代码样式和钟表效果来满足你的需求。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值