<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. 如何使用JS實現PC端移動端的刮卡效果

    時間:2025-12-03 03:27:21 java語言

    如何使用JS實現PC端移動端的刮卡效果

      導語:javascript是一門神奇的語言,可以實現諸多效果的設計,下面小編要給大家提供的是如何使用JS實現PC端移動端的刮卡效果,更多詳情請關注應屆畢業生考試網。

      具體代碼:

      <!DOCTYPE html>

      <html>

      <head>

      <meta charset="utf-8">

      <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

      <title>小月博客刮刮卡案例分享</title>

      <script src="/pic/jquery/2.1.4/jquery.min.js"></script>

      <style type="text/css">

      * {

      padding: 0;

      margin: 0;

      list-style: none;

      }

      body {

      background: #E34830;

      position: relative;

      }

      .banner1 {

      display: block;

      width: 100%;

      /*height: auto;*/

      overflow: hidden;

      }

      .ggl {

      position: relative;

      width: 85.6%;

      height: 90px;

      margin: -5px auto;

      background: url(img/ggl.png) no-repeat center center;

      background-size: 100% 100%;

      border: 1px solid blue;

      }

      .canvas {

      position: absolute;

      top: 2px;

      left: 2.5%;

      width: 95%;

      height: 82px;

      line-height: 82px;

      text-align: center;

      z-index: 2;

      border: 1px solid black;

      }

      .info {

      position: absolute;

      top: 2px;

      left: 2.5%;

      width: 95%;

      height: 82px;

      text-align: center;

      }

      .info span {

      display: block;

      font-size: 18px;

      }

      #prompt {

      line-height: 40px;

      }

      .btn {

      position: relative;

      width: 50%;

      height: 35px;

      line-height: 35px;

      background: #df412b;

      color: #fff;

      border-radius: 5px;

      margin: 0 auto;

      z-index: 1;

      }

      .guize {

      display: block;

      width: 85.6%;

      height: auto;

      margin: 5% auto 10% auto;

      border-radius: 5px;

      border: 1px solid black;

      }

      .num {

      width: 90%;

      margin: 0 auto;

      height: 30px;

      line-height: 30px;

      text-align: center;

      font-size: 14px;

      margin-top: 5%;

      border: 1px solid black;

      }

      #ok,

      #no {

      display: none;

      }

      .pop {

      position: fixed;

      left: 0;

      top: 0;

      z-index: 3;

      width: 100%;

      height: 100%;

      background: rgba(0, 0, 0, 0.6);

      display: none;

      }

      .pop img {

      width: 100%;

      height: auto;

      overflow: hidden;

      margin: 15% auto;

      }

      </style>

      <script>

      /pic/p>

      var t = 0;

      /pic/p>

      var initialize = function() {

      /pic/p>

      $('.num1').html(4 - t);

      /pic/p>

      function getRandomNum(lbound, ubound) {

      return (Math.floor(Math.random() * (ubound - lbound)) + lbound);

      }

      var r = getRandomNum(1, 100);

      var btn = document.getElementsByClassName("btn");

      for (var i = 0; i < btn.length; i++) {

      btn[i].style.zIndex = '1';

      }

      document.getElementById("no").style.display = "none";

      document.getElementById("ok").style.display = "none";

      /pic/p>

      isOk = 0;

      if (r < t * 33) {

      document.getElementById("prompt").innerHTML = "恭喜您,中獎了!"

      var ok = document.getElementById("ok");

      ok.style.display = "block";

      /pic/p>

      ok.onclick = function() {

      window.location.href = "prize.html"

      };

      } else {

      document.getElementById("prompt").innerHTML = "很遺憾,未中獎!"

      document.getElementById("no").style.display = "block";

      }

      };

      var c1; /pic/p>

      var ctx; /pic/p>

      var ismousedown; /pic/p>

      var isOk = 0; /pic/p>

      var fontem = parseInt(window.getComputedStyle(document.documentElement, null)["font-size"]); /pic/p>

      /* 頁面加載后開始初始化畫布 */

      window.onload = function() {

      initialize();

      c1 = document.getElementById("c1");

      /pic/p>

      /pic/p>

      /pic/p>

      c1.width = c1.clientWidth;

      c1.height = c1.clientHeight;

      ctx = c1.getContext("2d");

      /pic/p>

      c1.addEventListener("mousemove", eventMove, false);

      c1.addEventListener("mousedown", eventDown, false);

      c1.addEventListener("mouseup", eventUp, false);

      /pic/p>

      c1.addEventListener('touchstart', eventDown, false);

      c1.addEventListener('touchend', eventUp, false);

      c1.addEventListener('touchmove', eventMove, false);

      /pic/p>

      initCanvas();

      }

      /pic/p>

      function initCanvas() {

      /pic/p>

      /pic/p>

      ctx.globalCompositeOperation = "source-over";

      ctx.fillStyle = '#aaaaaa';

      ctx.fillRect(0, 0, c1.clientWidth, c1.clientHeight);

      ctx.fill();

      ctx.font = "Bold 30px Arial";

      ctx.textAlign = "center";

      ctx.fillStyle = "#999999";

      ctx.fillText("刮一刮", c1.width / 2, 50);

      /pic/p>

      /pic/p>

      ctx.globalCompositeOperation = 'destination-out';

      }

      /pic/p>

      function eventDown(e) {

      e.preventDefault();

      ismousedown = true;

      }

      /pic/p>

      function eventUp(e) {

      e.preventDefault();

      /pic/p>

      var a = ctx.getImageData(0, 0, c1.width, c1.height);

      var j = 0;

      for (var i = 3; i < a.data.length; i += 4) {

      if (a.data[i] == 0) j++;

      }

      /pic/p>

      if (j >= a.data.length / 8) {

      isOk = 1;

      }

      ismousedown = false;

      }

      /pic/p>

      function eventMove(e) {

      e.preventDefault();

      if (ismousedown) {

      if (e.changedTouches) {

      e = e.changedTouches[e.changedTouches.length - 1];

      }

      var topY = document.getElementById("top").offsetTop;

      var oX = c1.offsetLeft,

      oY = c1.offsetTop + topY;

      var x = (e.clientX + document.body.scrollLeft || e.pageX) - oX || 0,

      y = (e.clientY + document.body.scrollTop || e.pageY) - oY || 0;

      /pic/p>

      /pic/p>

      ctx.beginPath();

      ctx.arc(x, y, fontem * 1.2, 0, Math.PI * 2, true);

      /pic/p>

      /pic/p>

      c1.style.display = 'none';

      c1.offsetHeight;

      c1.style.display = 'inherit';

      ctx.fill();

      }

      if (isOk) {

      var btn = document.getElementsByClassName("btn");

      for (var i = 0; i < btn.length; i++) {

      btn[i].style.zIndex = '3';

      }

      document.getElementsByClassName("btn")[0].style.zIndex = "3";

      }

      }

      /pic/p>

      $("#no").click(function() {

      if (t > 3) {

      /pic/p>

      $('.pop1').show();

      $('.pop1 img').click(function() {

      $('.pop1').hide();

      })

      } else {

      t++;

      /pic/p>

      document.getElementById("no").style.display = "none";

      document.getElementById("ok").style.display = "none";

      window.onload();

      initCanvas();

      }

      });

      </script>

      </head>

      <body>

      <img src="img/banner1.png" class="banner1" />

      <p class="ggl" id="top">

      <p class="info" id="prize">

      <span id="prompt"></span>

      <span class="btn" id="ok">領取獎品</span>

      <span class="btn" id="no">再來一次</span>

      </p>

      <canvas id="c1" class="canvas"></canvas>

      </p>

      <p class="num">

      您還有<span class="num1"></span>次刮卡機會

      </p>

      <img src="img/guize.png" class="guize" />

      <!-- 遮罩層1抽獎次數已經用完-->

      <p class="pop pop1">

      <img src="img/pop1.png" />

      </p>

      <p class="pop pop2">

      <img src="img/pop2.png" id="pop2" />

      </p>

      </body>

      </html>

    【如何使用JS實現PC端移動端的刮卡效果】相關文章:

    移動端網頁設計技巧01-03

    移動端網頁設計的技巧12-01

    移動端網頁設計方法11-18

    移動端字體的設計準則12-08

    Java如何通過Socket實現TCP服務端10-01

    移動端網頁設計技巧分享12-26

    移動端網頁設計尺寸標準02-25

    簡化移動端網頁設計的步驟01-22

    移動端網頁設計的技巧指導10-24

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人