【坑】html5中使用canvas绘制两个strokeRect之间忘了用beginPath()
2015-08-11 09:13
706 查看
代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> canvas { border: thin solid black; } </style> </head> <body> <canvas id="canvas" width="1200" height="800"></canvas> </body> <script type="text/javascript"> var canvas = document.getElementById("canvas"); var context = canvas.getContext("2d"); context.beginPath(); context.strokeStyle = "rgba(0,0,255,0.5)"; context.lineWidth = 10; context.rect(10, 10, 500, 500); context.stroke(); context.strokeStyle = "rgba(255,0,0,0.5)"; context.lineWidth = 10; context.rect(150, 150, 500, 500); context.stroke(); </script> </html>
在线演示
原因
由于没有加context.beginPath()在两次绘制路径之间,所以浏览器会认为后面的那个rect绘制的是前一个rect的子路径,当第二的rect以rgba(255,0,0,0.5)颜色绘制的时候,由于它是子路径,就会把它的父路径也用同样的方式绘制一遍,所以第一个rect不是蓝色而是蓝色和红色的混合色(我这里使用了半透明以便你们看得出来是两种颜色的混合)相关文章推荐
- HTML5之音频audio知识(部分vedio)
- Html5(4)Selection 和 Range对象
- html5基础学习
- Html5(3)表单相关新特性
- html基础学习之--html5与css3权威指南--第一二章读书笔记
- html基础学习之--html5与css3权威指南--第一二章读书笔记
- HTML5 canvas 绘制精美的图形
- Html5(2)新增的结构元素 及 新增页面元素
- Html5(1) html5 与 html4 的区别
- Html5(0) 初步了解
- HTML5_文本元素
- 解析Cloudera Manager(CDH5)内部结构、功能包括配置文件、目录位置等
- H5视频播放自动全屏,暂停退出全屏等功能
- html5开发页游(前话)
- html5游戏开发框架phaser相关教程。
- 使用Fiddler对手机应用进行抓包测试
- html5与html4区别
- 修改HTML5 input placeholder默认颜色
- 10令人惊叹的模型的影响HTML5应用程序及源代码
- Amaze UI让HTML5 Web应用接近原生体验