之前仔细研究了imooc上的文章 http://www.imooc.com/video/4319 ,用手工可以实现了,步骤和思路是:
document.getElementById('Canvas').style.display = "block"; //原来canvas样式只有position为absolute,display为none这两个属性,此时将display改为block,但不加任何fillStyle.
canvas = document.getElementById('Canvas');
cxt = canvas.getContext("2d");
canvas.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
canvas.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;//定义canvas环境
cxt.fillStyle='rgba(0,0,0,0.7)';
cxt.rect(0, 0, canvas.width, canvas.height); //定义canvas整体宽度和颜色
pathRect(cxt,1496,44,156,35); //pathRect函数是根据非零环绕原则,定义的是不被涂色的区域(div),即我的高亮颜色,这个是第一个不涂色区域。
pathRect(cxt,270,110,250,250); //定义第2个不涂色区域。
pathRect(cxt,526,110,250,250); //定义第3个不涂色区域。
pathRect(cxt,789,110,250,250); //定义第4个不涂色区域。
cxt.fill(); //开始染色,其他区域都会被染成灰色,除了定义的几个区域外。
附上之前的函数,
任何时候,只要传入div_id,就能很容易算出pathRect(cxt,270,110,250,250)后面的4个值了。
相关分类