国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

20行JS代碼實現網頁刮刮樂效果

2019-11-19 16:16:23
字體:
來源:轉載
供稿:網友

分享一段用canvas和JS制作刮刮樂的代碼,JS部分去掉注釋不到20行代碼

效果如下

蓋倫.jpg

刮刮樂.gif

HTML部分

<body>  ![](img/gailun.jpg)  <canvas id="canvas" width="400" height="300"></canvas> </body>

沒什么要特別注意的

為了效果加了些CSS樣式

CSS部分

<style type="text/css">  *{   margin: 0;   padding: 0;  }   img{    width: 400px;    height: 300px;    left: 200px;    position: absolute;    z-index: -1;   }   canvas{    margin-left:200px;   }  </style>

注意

1.為了清除瀏覽器自帶效果加了

*{   margin: 0;   padding: 0;  }

2.img需要在灰布下面,加了z-index;

3.圖片絕對定位

js部分

分析下邏輯

1.鼠標按下移動相應區域刮開

2.鼠標抬起改變鼠標位置不接著刮開

js代碼

<script type="text/javascript">  var canvas = document.getElementById("canvas");  var context = canvas.getContext('2d');   //畫蒙布  context.beginPath();  context.fillStyle= 'grey'  context.fillRect(0,0,400,300);  //鼠標按下開刮  canvas.onmousedown=function(){   canvas.onmousemove = function(){    //獲取鼠標坐標    var x = event.clientX;    var y = event.clientY;    //destination-out    顯示原來的不在后來區域的部分    context.globalCompositeOperation = "destination-out";    context.beginPath();    context.arc(x-200,y,30,0,Math.PI*2);    context.fill();     }  }  //鼠標抬起不刮開  canvas.onmouseup=function(){   canvas.onmousemove = function(){    }  }   </script>

需要注意的是

1.圖片和畫布左移了200px,所以圓的起點坐標相對于獲取位置減了200px;

2.globalCompositeOperation是畫布的一個功能作用是設置或返回如何將一個源(新的)圖像繪制到目標(已有)的圖像上,還有其余10種寫法

以上這篇20行JS代碼實現網頁刮刮樂效果就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北碚区| 昌平区| 高州市| 碌曲县| 鲁甸县| 那坡县| 邵武市| 蚌埠市| 辰溪县| 漠河县| 渝北区| 确山县| 观塘区| 鄂托克旗| 荔浦县| 天长市| 四子王旗| 花垣县| 太白县| 谷城县| 渭源县| 个旧市| 新宁县| 巴东县| 定西市| 康乐县| 同江市| 赣州市| 洮南市| 吉林市| 阿尔山市| 贡山| 西青区| 贵南县| 崇仁县| 拜城县| 镇安县| 新竹市| 凤庆县| 洛扎县| 聂荣县|