该如何编写函数定义可变长数组做参数来实现canvas的一个页面同时高亮多个div

之前仔细研究了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();      //开始染色,其他区域都会被染成灰色,除了定义的几个区域外。

https://img2.mukewang.com/5c7349f3000106dc08000394.jpg


https://img3.mukewang.com/5c734a050001f5fc15190222.jpg

附上之前的函数,

https://img.mukewang.com/5c734a1f00010d3615110504.jpg

任何时候,只要传入div_id,就能很容易算出pathRect(cxt,270,110,250,250)后面的4个值了。


一只萌萌小番薯
浏览 390回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript