日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

用canvas實現一個刮刮卡效果

admin
2024年10月30日 13:27 本文熱度 1205


先看上面的效果,這是常見的刮刮卡抽獎效果,那么前端如何使用代碼實現這樣的效果呢?主流方案是采用canvas來實現。


首先要實現這種效果,核心是要知道canvasglobalCompositeOperation屬性,這個屬性的作用是控制canvas上不同圖層之間的顯示效果。

這里我們需要使用到globalCompositeOperationdestination-out屬性,這個屬性描述的效果是,當新圖層繪制到原始圖層上時候,原始圖層保持在新圖層不重疊的部分,僅保留現有畫布內容和新形狀不重疊的部分。


有了這個效果之后,我們只需要將要顯示的東西放置在canvas后面就可以了,至于刮刮卡的效果,就是在 mosemove事件里面,動態繪制透明的圖層到 canvas 上就好了。


代碼如下:

<!DOCTYPE html>
<html>
  <head>
      <meta charset="utf-8">
      <title></title>
      <style type="text/css">
          body,html {
              width: 100%;
              height: 100%;
              display: flex;
              align-items: center;
              justify-content: center;
          }
          .box {
              user-select: none;
              position: relative;
              border: 2px solid #333;
              width: 400px;
              height: 120px;
              font-size: 50px;
              line-height: 120px;
              text-align: center;
          }
          #myCanvas {
              position: absolute;
              top: 0;
              left: 0;
          }
      </style>
  </head>
  <body>
      <div class="box">
          恭喜您,中獎了
          <canvas id="myCanvas" width="400px" height="120px"></canvas>
      </div>
  </body>
  <script type="text/javascript">
      const canvas = document.getElementById('myCanvas');
      const ctx = canvas.getContext('2d');
      ctx.fillStyle = '#ccc';
      ctx.fillRect(0, 0, 400, 120);
      ctx.globalCompositeOperation = "destination-out";
      canvas.onmousedown = function() {
          canvas.onmousemove = function(event) {
              ctx.beginPath();
              ctx.arc(event.offsetX, event.offsetY, 16, 0, 7, false);
              ctx.fill();
          }
      }

      document.body.onmouseup = function() {
          canvas.onmousemove = null;
      }
  </script>
</html>

arc(x, y, r, startAngle, endAngle, anticlockwise): 

以(x, y) 為圓心,以r 為半徑,從 startAngle 弧度開始到endAngle弧度結束。

anticlosewise 是布爾值,true 表示逆時針,false 表示順時針(默認是順時針)。

注意:這里的度數都是弧度;0 弧度是指的 x 軸正方向。


該文章在 2024/10/30 15:13:15 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 欧美日韩国产在线一区 | 韩国三级国产欧美 | 国产精彩 | 91国语精品自产拍在线观看 | 亚洲国产激情一区二区三区 | 国产精品一区福利在线观看 | 欧美日本一区二区三区道 | 国产精品亚洲一区二区三区 | 国产乱码精品一区二区三区卡 | 免费人成网站在线观看欧美 | 依依成人影院在线观看 | 日韩大片在线永久免费观看网站 | 开拓亚洲色偷偷偷综合网的同时 | 中国字幕在线看韩国电影 | 亚洲国产妇在线观看 | 国产精品民宅偷窥盗摄 | 亚洲欧美综合人成在线 | www成年人视频 | 亚洲国产区男人 | 国产嘿嘿嘿视频在线观看 | 欧美一区二区三区免费观看视频 | 国色天香天天影院综合网 | 欧美日韩一区二区成人午夜电影网 | 国产精品黑色丝袜在线观看 | 亚洲视频中文字幕在线不卡 | 国产乱人视频在线观看播放1 | 在线观看亚洲人成网站 | 免费国产小视频在线观看 | 国产v亚洲v天堂宗合 | 2025精品| 国产人成午夜免电影费观看 | 国产亚洲精品自在在线观看 | 日韩欧美国产精 | 精品视频在线观看 | 91精品国产免 | 日本亚洲色大成网站www久 | 亚洲国产经典国产精品观看免费 | 性欧美暴力猛交6 | 亚洲高清aⅴ日本欧美视频 欧美另类69 | 日韩天天精品综合 | 91国语精品自产拍在 |