溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用原生JavaScript寫一個(gè)刮刮樂

發(fā)布時(shí)間:2020-10-29 17:56:49 來源:億速云 閱讀:183 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)使用原生JavaScript寫一個(gè)刮刮樂,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

原理

鼠標(biāo)按住移動的時(shí)候,實(shí)現(xiàn)刮刮樂的效果,那就是鼠標(biāo)按下的同時(shí)鼠標(biāo)移動,那就清除畫布。松開鼠標(biāo),鼠標(biāo)移動不再清除畫布了,那就得清除事件。

canvas畫布

1、獲取畫布元素

var canvas = document.getElementById('canvas');

2、獲取繪圖對象getContext

var ctx = canvas.getContext('2d');

3、畫線

ctx.lineWidth = 3;//線寬
ctx.strokeStyle = 'red';//線條顏色
//開始的位置 moveTo(x,y);
//結(jié)束的位置lineTo(x,y)
//執(zhí)行stroke()

4、矩形ctx.rect(x,y,width,height);

ctx.rect(0,0,300,150);
ctx.fillStyle = '#ccc';//填充的顏色
ctx.fill();//執(zhí)行
ctx.clearRect(e.clientX,e.clientY,20,20);//清除矩形

頁面

1、頁面結(jié)構(gòu)

<canvas id="canvas" width="300" height="150" ></canvas>
<div class="prize">謝謝惠顧</div>

2、樣式

.prize {
 width: 300px;
 height: 150px;
 text-align: center;
 line-height: 150px;
 margin-top:-150px;
 color: red;
 font-size: 20px;
}

3、動畫

//獲取畫布元素
 var canvas = document.getElementById('canvas');
 // 獲取繪圖對象
 var ctx = canvas.getContext('2d');
 ctx.lineWidth = 3;//線寬
 ctx.strokeStyle = 'red';//線條顏色
 //開始的位置 moveTo(x,y);
 //結(jié)束的位置lineTo(x,y)
 //執(zhí)行stroke()

 //矩形
 ctx.rect(0,0,300,150);
 ctx.fillStyle = '#ccc';//填充的顏色
 ctx.fill();//執(zhí)行
 ctx.clearRect(e.clientX,e.clientY,20,20);
 // 按下
 canvas.onmousedown = function (e){
  //移動
  canvas.onmousemove = function (e) {
   // ctx.lineTo(e.clientX,e.clientY);
   // ctx.lineTo(100,100)
   // ctx.stroke();
   ctx.clearRect(e.clientX,e.clientY,20,20);//清除
  }
 }
 canvas.onmouseup = function (e) {
  canvas.onmousemove = null;
 }
 // 改變中獎信息
 var arr = ['一個(gè)億','現(xiàn)金500','100元話費(fèi)','騰訊視頻VIP月卡','謝謝惠顧'],
  prize = document.querySelector('.prize'),
  random = Math.floor(Math.random()*arr.length);
 prize.innerText = arr[random];

完整源碼

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <style>
  /*----------js刮刮樂------------*/
  .prize {
   width: 300px;
   height: 150px;
   text-align: center;
   line-height: 150px;
   margin-top:-150px;
   color: red;
   font-size: 20px;
  }
 </style>
</head>
<body>
<!--js刮刮樂-->
<canvas id="canvas" width="300" height="150" ></canvas>
<div class="prize">謝謝惠顧</div>

<script>
 // ------------js刮刮樂-----------
 //獲取畫布元素
 var canvas = document.getElementById('canvas');
 // 獲取繪圖對象
 var ctx = canvas.getContext('2d');
 ctx.lineWidth = 3;//線寬
 ctx.strokeStyle = 'red';//線條顏色
 //開始的位置 moveTo(x,y);
 //結(jié)束的位置lineTo(x,y)
 //執(zhí)行stroke()

 //矩形
 ctx.rect(0,0,300,150);
 ctx.fillStyle = '#ccc';//填充的顏色
 ctx.fill();//執(zhí)行
 ctx.clearRect(e.clientX,e.clientY,20,20);
 // 按下
 canvas.onmousedown = function (e){
  //移動
  canvas.onmousemove = function (e) {
   // ctx.lineTo(e.clientX,e.clientY);
   // ctx.lineTo(100,100)
   // ctx.stroke();
   ctx.clearRect(e.clientX,e.clientY,20,20);//清除
  }
 }
 canvas.onmouseup = function (e) {
  canvas.onmousemove = null;
 }
 // 改變中獎信息
 var arr = ['一個(gè)億','現(xiàn)金500','100元話費(fèi)','騰訊視頻VIP月卡','謝謝惠顧'],
  prize = document.querySelector('.prize'),
  random = Math.floor(Math.random()*arr.length);
 prize.innerText = arr[random];
 // ------------js刮刮樂-----------
</script>
</body>
</html>

關(guān)于使用原生JavaScript寫一個(gè)刮刮樂就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI