【坑】html5中使用canvas绘制两个strokeRect之间忘了用beginPath()
来源:互联网 发布:java考试及应用 编辑:程序博客网 时间:2024/06/05 04:42
代码
<!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不是蓝色而是蓝色和红色的混合色(我这里使用了半透明以便你们看得出来是两种颜色的混合)
0 0
- 【坑】html5中使用canvas绘制两个strokeRect之间忘了用beginPath()
- [HTML5]canvas元素中beginPath()方法
- HTML5中Canvas rect(), strokeRect() 和 fillRect() 的区别
- 浅谈HTML5中canvas中的beginPath()和closePath()
- HTML5中使用canvas绘制复杂图形
- HTML5中使用canvas绘制矩形
- HTML5中使用canvas绘制圆形
- Canvas中beginPath的重要性
- 【Html5每日练习】canvas beginPath()的理解
- html5中canvas绘制矩形
- html5中canvas绘制圆形
- html5中canvas绘制线段
- 使用html5 canvas绘制图片
- HTML5使用canvas绘制图形
- HTML5使用canvas绘制图形
- HTML5用canvas绘制心形线
- HTML5中canvas画图之绘制路径
- html5中canvas贝塞尔曲线绘制菊花
- hdoj-1010-Tempter of the Bone【深搜+剪枝】
- JavaScript与jQuery中获取屏幕的宽度和高度的常用方法以及HTML中精确定位
- js判断ie浏览器
- 阿里283亿撑腰 苏宁拟投百亿杀回门店建设
- PreparedStatement(8.10)
- 【坑】html5中使用canvas绘制两个strokeRect之间忘了用beginPath()
- Leetcode#1||Two Sum
- 当引入solr相关jar包 报 NoClassDefFoundError response相关方法
- GCD一次性代码
- 《设计模式》读书笔记
- GCD队列组1
- 三星S7或搭载骁龙820处理器 明年初发布
- HTTP POST 网络请求
- SYBASE bcp用法及例子