js+html5实现canvas绘制椭圆形图案的方法


Posted in Javascript onMay 21, 2016

本文实例讲述了js+html5实现canvas绘制椭圆形图案的方法,HTML5 canvas 没有画椭圆的方法,以下代码可以画出椭圆,分享给大家供大家参考,具体实现方法如下:

1、在一个隐式的画布 (将 其 CSS 定义成:display:none; ) 上画园。
2、将隐式画布的影像,以不同的宽高比值,画在另一个显式的画布,以使园变成椭圆。
3、进而,加进动画功能。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试颜色背景</title>
<script>
var ticker=0;
var col = new Array("#000000","#A52A2A","#B8860B","pink","green","yellow","red","orange","#BB008B","#8B0000");
 
function drawBackground(){
var canvasHide=document.getElementById("hide"); //隐藏的画布
var g=canvasHide.getContext("2d"); //找出隐藏画布 hide 的画笔 g 
g.clearRect(0,0,1200,800); //清理隐藏画布
var i=0;
do { //画 不同颜色 依次同心发散的园
g.beginPath();
var grd=g.createRadialGradient(300,300,300-i*25, 300,300,265-i*25);
grd.addColorStop(0,col[(0+i+ticker)%col.length]);
grd.addColorStop(1,col[(1+i+ticker)%col.length]);
g.fillStyle=grd;
g.arc(300,300,300-i*25,0,2*Math.PI);
g.fill();
i++;
} while(i<11);
 
//找出显式画布 myCanvas 的画笔 gg 
var gg=document.getElementById("myCanvas").getContext("2d");
gg.clearRect(0,0,myCanvas.width,myCanvas.height); //清理显式画布
 
/* 将隐式画布 hide 的园形图像,
 * 以 宽 600, 高 300 的比例,
 * 画到显式画布 myCanvas,
 * 结果,隐式画布 hide 的园形图像,在显式画布 myCanvas 上 成了椭圆
 */
gg.drawImage(canvasHide,0,0,600,300); 
ticker++;
}
 
function preperation(){
setInterval('drawBackground()',1000);
 }
</script>
<style>
#myCanvas{
 position:absolute;
 left:0px;
 top:0px;
}
#hide{
 display:none;
}
</style>
</head>
 
<body onLoad="preperation()">
<canvas id="myCanvas" width="600" height="400" ></canvas>
<canvas id="hide" width="600" height="600" ></canvas>
 
</body>
</html>

希望本文所述对大家的web程序设计有所帮助。

Javascript 相关文章推荐
不能再简单的无闪刷新验证码原理很简单
Nov 05 Javascript
Mootools 1.2教程 设置和获取样式表属性
Sep 15 Javascript
jQuery .tmpl(), .template()学习资料小结
Jul 18 Javascript
js图片向右一张张滚动效果实例代码
Nov 23 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
Oct 03 Javascript
js中scrollTop()方法和scroll()方法用法示例
Oct 03 Javascript
js放大镜放大购物图片效果
Jan 18 Javascript
js数字计算 误差问题的快速解决方法
Feb 28 Javascript
jquery实现折叠菜单效果【推荐】
Mar 08 Javascript
详解Vue打包优化之code spliting
Apr 09 Javascript
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
JavaScript实现京东快递单号查询
Nov 30 Javascript
jQuery DataTables插件自定义Ajax分页实例解析
Apr 28 #Javascript
Markdown+Bootstrap图片自适应属性详解
May 21 #Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
May 21 #Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
May 21 #Javascript
IScroll5 中文API参数说明和调用方法
May 21 #Javascript
JavaScript的ExtJS框架中表格的编写教程
May 21 #Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 #Javascript
You might like
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
php使用array_chunk函数将一个数组分割成多个数组
2018/12/05 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
2011/08/23 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
再谈Jquery Ajax方法传递到action(补充)
2014/05/12 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
JavaScript通过join函数连接数组里所有元素的方法
2015/03/20 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
JavaScript函数绑定用法实例分析
2017/11/14 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
2021/01/25 Javascript
详解python函数传参是传值还是传引用
2018/01/16 Python
对Python中 \r, \n, \r\n的彻底理解
2020/03/06 Python
如何配置关联Python 解释器 Anaconda的教程(图解)
2020/04/30 Python
获取python运行输出的数据并解析存为dataFrame实例
2020/07/07 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
alice McCALL官网:澳大利亚时尚品牌
2020/11/16 全球购物
岗位廉洁从政承诺书
2014/03/27 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
职工宿舍管理制度
2015/08/05 职场文书
实习报告范文之电话客服岗位
2019/07/26 职场文书
少年的你:世界上没有如果,要在第一次就勇敢的反抗
2019/11/20 职场文书
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技