canvas繪制刮刮卡效果
本文實(shí)例為大家分享了canvas繪制刮刮卡效果的具體代碼,供大家參考,具體內(nèi)容如下
先上圖

代碼
<!DOCTYPE html>
<html>
<head>
<meta name="keywords" content="風(fēng)舞紅楓,前端技術(shù),canvas"/>
<meta name="description" content="風(fēng)舞紅楓,前端技術(shù),canvas,vue,react,node,個(gè)人博客"/>
<meta charset="utf-8">
<title>刮刮卡</title>
<link rel="icon" href="../image/icon2.ico" >
<style type="text/css">
*{margin:0;padding:0;}
html,body{height:100%;}
body{overflow: hidden;}
div{position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;width:300px;height:150px;text-align:center;line-height:150px;background:rgb(200,0,0);color:rgb(255,255,255);font-size:22px;}
canvas{display: block;position:absolute;left:0;right:0;top:0;bottom:0;margin:auto;filter:blur(0.7px);}
</style>
</head>
<body>
<div></div>
<canvas></canvas>
</body>
<script type="text/javascript">
var div = document.getElementsByTagName('div')[0];
var canvas = document.getElementsByTagName('canvas')[0];
var context = canvas.getContext("2d");
var Jackpots = ["一等獎(jiǎng)","二等獎(jiǎng)","三等獎(jiǎng)","四等獎(jiǎng)","獎(jiǎng)勵(lì)獎(jiǎng)"];
//一等獎(jiǎng)概率2% 二等獎(jiǎng)概率6% 三等獎(jiǎng)概率14% 四等獎(jiǎng)概率30% 獎(jiǎng)勵(lì)獎(jiǎng)概率48%
var Jackpot = rand(0,49);
if(Jackpot == 0){
div.innerHTML = Jackpots[0];
}else if(Jackpot>0 && Jackpot<4){
div.innerHTML = Jackpots[1];
}else if(Jackpot>3 && Jackpot<11){
div.innerHTML = Jackpots[2];
}else if(Jackpot>10 && Jackpot<26){
div.innerHTML = Jackpots[3];
}else{
div.innerHTML = Jackpots[4];
}
context.beginPath();
context.fillStyle = "rgb(200,200,200)"
context.moveTo(0,0);
context.lineTo(300,0);
context.lineTo(300,150);
context.lineTo(0,150);
context.lineTo(0,0);
context.fill();
context.closePath();
context.beginPath();
context.font = '30px Arial';
context.fillStyle = "rgb(255,255,255)"
context.fillText("刮刮卡", 110 , 90);
context.fill();
context.closePath();
var fillColor = ["rgb(255,0,0,0.8)","rgb(255,255,0,0.8)","rgb(255,0,255,0.8)","rgb(0,255,255,0.8)"];
for(var i = 0;i<50;i++){
context.beginPath();
context.fillStyle = fillColor[rand(0,3)];
context.arc(rand(20,280),rand(20,130),1,0,2*Math.PI);
context.fill();
context.closePath();
}
var flag = false;
canvas.onmousedown = function(){
flag = true;
}
canvas.onmouseup = function(){
flag = false;
}
canvas.onmousemove = function(){
if(flag){
var e = event || window.event;
var x = e.clientX - parseInt(div.offsetLeft);
var y = e.clientY - parseInt(div.offsetTop);
//console.log(x,y);
context.beginPath();
context.arc(x,y,20,0,2*Math.PI);
context.globalCompositeOperation="destination-out";
context.fill();
context.closePath();
}
}
//隨機(jī)n到m的一個(gè)整數(shù)
function rand(n,m){
var c = m - n + 1;
return Math.floor(Math.random() * c + n);
}
</script>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
js回調(diào)函數(shù)仿360開(kāi)機(jī)
這篇文章主要為大家詳細(xì)介紹了js回調(diào)函數(shù)仿360開(kāi)機(jī),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
基于javascript實(shí)現(xiàn)彩票隨機(jī)數(shù)生成(簡(jiǎn)單版)
這篇文章主要介紹了基于javascript實(shí)現(xiàn)彩票隨機(jī)數(shù)生成的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-01-01
Three.js利用性能插件stats實(shí)現(xiàn)性能監(jiān)聽(tīng)的方法
Three.js 是一款運(yùn)行在瀏覽器中的 3D 引擎,你可以用它創(chuàng)建各種三維場(chǎng)景,而下面這篇文章主要給大家介紹了關(guān)于Three.js如何利用性能插件stats實(shí)現(xiàn)性能監(jiān)聽(tīng)的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
一文詳解JavaScript中的相等運(yùn)算符與類型轉(zhuǎn)換
在?JavaScript?編程中,相等運(yùn)算符和類型轉(zhuǎn)換是理解語(yǔ)言行為的關(guān)鍵部分,雖然這些概念看似簡(jiǎn)單,但它們的細(xì)節(jié)可能會(huì)導(dǎo)致意想不到的結(jié)果,本文將深入探討?==?和?===?運(yùn)算符的區(qū)別、對(duì)象比較、以及?JavaScript?中的顯式和隱式類型轉(zhuǎn)換,需要的朋友可以參考下2024-07-07
express+mockjs實(shí)現(xiàn)模擬后臺(tái)數(shù)據(jù)發(fā)送功能
這篇文章主要介紹了express+mockjs實(shí)現(xiàn)模擬后臺(tái)數(shù)據(jù)發(fā)送功能,需要的朋友可以參考下2018-01-01
Uniapp中使用Echarts的詳細(xì)過(guò)程
這篇文章主要介紹了Uniapp中使用Echarts的示例詳解這里只舉例折線圖,介紹了uni-app微信小程序使用echarts的方法,下載echart組件,可以先隨便建個(gè)文件夾,然后 npm init,接著下載依賴,需要的朋友可以參考下2022-11-11
CSS和Javascript簡(jiǎn)單復(fù)習(xí)資料
CSS和Javascript簡(jiǎn)單復(fù)習(xí)資料,學(xué)習(xí)css與js的朋友可以參考下。2010-06-06
純js實(shí)現(xiàn)頁(yè)面返回頂部的動(dòng)畫(huà)(超簡(jiǎn)單)
下面小編就為大家?guī)?lái)一篇純js實(shí)現(xiàn)頁(yè)面返回頂部的動(dòng)畫(huà)(超簡(jiǎn)單)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08

