HTML5 Canvas实现多层同心圆绘制示例
作者:交互手记时间:2026-10-29 20:59:11浏览:450
本文介绍如何使用JavaScript结合HTML5 Canvas元素绘制多层同心圆效果。通过获取Canvas上下文,利用translate设置坐标原点,并在循环中逐步减小半径和透明度来绘制多个嵌套圆形,最终实现视觉上的圆中圆特效。
Canvas多层同心圆绘制实现
本文通过一个具体实例,展示如何利用JavaScript与HTML5 Canvas技术实现多层同心圆的绘制效果,供读者参考学习。
实际运行后的视觉效果如下图所示:

实现该效果的核心代码逻辑如下:
<!DOCTYPE html>
<html>
<head>
<title>demo</title>
<style type="text/css">
#canvas {
background:#F2F2F2; height:500px; height:500px; margin-top:100px; margin-left:200px;
}
</style>
</head>
<body>
<canvas id="canvas" width="500px" height="500px" ></canvas>
</body>
<script type="text/javascript">
(function() {
var dyl = {};
dyl.getDom = function(id) {
return document.getElementById(id);
}
dyl.getContext = function(canvasID) {
var canvas = this.getDom(canvasID);
if(!canvas) {
return null;
}
return canvas.getContext("2d");
}
if(!window.dyl) {
window.dyl = dyl;
}
})();
cache = {};
cache.context = dyl.getContext('canvas');
// 每个圈的圆个数控制
cache.scaleNmb = 6;
cache.createColor = function() {
var color = "rgb(";
color += Math.round(Math.random()*255);
color += ",";
color += Math.round(Math.random()*255);
color += ",";
color += Math.round(Math.random()*255);
color += ")";
return color;
};
cache.draw = function() {
cache.context.fillRect(-10, -10, 20, 20);
for(var i=1; i<10; i++) {
cache.context.save();
for(var j=0; j<cache.scaleNmb*i; j++) {
cache.context.rotate(Math.PI*2/(cache.scaleNmb*i));
cache.context.fillStyle = cache.createColor();
cache.context.beginPath();
cache.context.arc(0, 20*i, 5, 0,Math.PI*2, true);
cache.context.closePath();
cache.context.fill();
}
cache.context.restore();
}
};
cache.init = function() {
cache.context.translate(250, 250);
cache.draw();
};
cache.init();
</script>
</html>
如需了解更多JavaScript特效相关技巧,可参考本站关于jQuery动画与特效、常见特效汇总及JavaScript动画技巧的专题文章。
希望上述内容能为您的JavaScript编程实践提供有益帮助。
作者最新文章
JS怎么实现页面强制刷新
2026-11-05 14:53:38
点击JS链接直接运行不下载?前端实现.js文件强制下载的三种方法
2026-11-05 12:12:23
怎么封装一个通用的JS创建元素辅助函数
2026-11-05 11:41:41
Swiper.js 怎么监听滑动结束并获取当前索引
2026-11-05 10:57:15
HTML、CSS和JS的关系:Web前端三件套怎么协作
2026-11-04 15:41:40
