Home >Web Front-end >JS Tutorial >js and html5 realize the scratch card lottery effect on the mobile phone, which is perfectly compatible with android/IOS_javascript skills

js and html5 realize the scratch card lottery effect on the mobile phone, which is perfectly compatible with android/IOS_javascript skills

WBOY
WBOYOriginal
2016-05-16 17:14:211466browse

It’s definitely worth reading, haha. I have completed it myself, please point out any mistakes:
Nowadays mobile phones perfectly support HTML5, so if you want to make a lottery module on the mobile phone, use the scratch card lottery effect. I believe this interactive experience will be great
ps: Since I don’t have a mobile phone with wp8 system, it is not compatible with wp8 system. It is currently perfectly compatible with android and IOS
If you want to browse on PC, you have to change js. Currently, it supports Google, Firefox, and ie>=10 , if netizens want it, I will write a
code as follows:

Copy code code as follows:






eraser effect</title> ; <BR><script type="text/javascript" src="jquery.core.js"></script> <br><style> <br>#canvas { <br>background:url( winning-ticket.jpg);<!--Prize image--> <br>width: 531px; <br>height: 438px; <br>} <br>.before{ <br>background:none !important ; <br>} <br>#canvas canvas { <br>cursor: url("hand.png") 0 0, auto;<!--gesture image on PC--> <br>} <br> </style> <br></head> <br><body oncontextmenu="return false;" onselectstart="return false;"> <br><div id="canvas">< /div> <br></body> <br><script type="text/javascript"> <br>(function() { <br>window.onload = function(){ <br>/* *Determine whether the browser supports canvas**/ <br>try{ <br>document.createElement('canvas').getContext('2d'); <br>}catch(e){ <br>var addDiv = document.createElement(' div'); <br>alert('Your mobile phone does not support the scratch card effect~!'); <br>} <br>}; <br>var u = navigator.userAgent,mobile = ''; <br>if(u.indexOf('iPhone') > -1) mobile = 'iphone'; <br>if(u.indexOf('Android') > -1 || u.indexOf('Linux') > -1) mobile = 'Android'; <br>function createCanvas(parent, width, height) { <br>var canvas = {}; <br>canvas.node = document.createElement('canvas'); <br>canvas.context = canvas.node.getContext('2d'); <br>canvas.node.width = width || 100; <br>canvas.node.height = height || 100; <br>parent. appendChild(canvas.node); <br>return canvas; <br>} <br>function init(container, width, height, fillColor, type) { <br>var canvas = createCanvas(container, width, height); <br>var ctx = canvas.context; <br>// define a custom fillCircle method <br>ctx.fillCircle = function(x, y, radius, fillColor) { <br>this.fillStyle = fillColor; <br>this .beginPath(); <br>this.moveTo(x, y); <br>this.arc(x, y, radius, 0, Math.PI * 2, false); <br>this.fill(); <br>}; <br>ctx.clearTo = function(fillColor) { <br>ctx.fillStyle = fillColor; <br>ctx.fillRect(0, 0, width, height); <br>}; <br> ctx.clearTo(fillColor || "#ddd"); <br>canvas.node.addEventListener("touchstart",function(e){ <br>canvas.isDrawing = true; <br>},false); <br>canvas.node.addEventListener("touchend",function(e){ <br>canvas.isDrawing = false; <br>},false); <br>canvas.node.addEventListener("touchmove",function(e) { <br>if (!canvas.isDrawing) { <br>return; <br>} <br>if(type == 'Android'){ <br>var x = e.changedTouches[0].pageX - this .offsetLeft; <br>var y = e.changedTouches[0].pageY - this.offsetTop; <br>}else{ <br>var x = e.pageX - this.offsetLeft; <br>var y = e. pageY - this.offsetTop; <br>} <br>var radius = 20; <br>var fillColor = '#ff0000'; <br>ctx.globalCompositeOperation = 'destination-out'; <br>ctx.fillCircle(x , y, radius, fillColor); <br>},false); <br>} <br>var container = document.getElementById('canvas'); <br>init(container, 531, 438, '#ff0000' , mobile); <br>})(); <br></script> <br></html> <br> </div></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>Statement:</span><div>The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn</div></div></div><div class="nphpSytBox"><span>Previous article:<a class="dBlack" title="JS simple implementation of element copying example with picture_Basic knowledge" href="https://m.php.cn/faq/15376.html">JS simple implementation of element copying example with picture_Basic knowledge</a></span><span>Next article:<a class="dBlack" title="JS simple implementation of element copying example with picture_Basic knowledge" href="https://m.php.cn/faq/15378.html">JS simple implementation of element copying example with picture_Basic knowledge</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>Related articles</h2><em><a href="https://m.php.cn/article.html" class="bBlack"><i>See more</i><b></b></a></em><div class="clear"></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="fluid" data-ad-layout-key="-6t+ed+2i-1n-4w" data-ad-client="ca-pub-5902227090019525" data-ad-slot="8966999616"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><ul class="nphpXgwzList"><li><b></b><a href="https://m.php.cn/faq/1609.html" title="An in-depth analysis of the Bootstrap list group component" class="aBlack">An in-depth analysis of the Bootstrap list group component</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/faq/1640.html" title="Detailed explanation of JavaScript function currying" class="aBlack">Detailed explanation of JavaScript function currying</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/faq/1949.html" title="Complete example of JS password generation and strength detection (with demo source code download)" class="aBlack">Complete example of JS password generation and strength detection (with demo source code download)</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/faq/2248.html" title="Angularjs integrates WeChat UI (weui)" class="aBlack">Angularjs integrates WeChat UI (weui)</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/faq/2351.html" title="How to quickly switch between Traditional Chinese and Simplified Chinese with JavaScript and the trick for websites to support switching between Simplified and Traditional Chinese_javascript skills" class="aBlack">How to quickly switch between Traditional Chinese and Simplified Chinese with JavaScript and the trick for websites to support switching between Simplified and Traditional Chinese_javascript skills</a><div class="clear"></div></li></ul></div></div><ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-5902227090019525" data-ad-slot="5027754603"></ins><script> (adsbygoogle = window.adsbygoogle || []).push({}); </script><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>Public welfare online PHP training,Help PHP learners grow quickly!</p></div><div class="footermid"><a href="https://m.php.cn/about/us.html">About us</a><a href="https://m.php.cn/about/disclaimer.html">Disclaimer</a><a href="https://m.php.cn/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body><!-- Matomo --><script> var _paq = window._paq = window._paq || []; /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function() { var u="https://tongji.php.cn/"; _paq.push(['setTrackerUrl', u+'matomo.php']); _paq.push(['setSiteId', '9']); var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s); })(); </script><!-- End Matomo Code --></html>