• canvas 写一个刮刮乐抽奖


    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    		<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    		<style type="text/css">
    			*{
    				padding: 0;
    				margin: 0;
    			}
    
    			.wap{
    				 200px;
    				height: 40px;
    				position: relative;
    				margin: 20px auto;
    				border: 1px solid #3385FF;
    			}
    			#canvas,.text{
    				position: absolute;
    				top: 0;
    				left: 0;
    				 200px;
    				height: 40px;
    			}
    			.text{
    				line-height: 40px;
    				text-align: center;
    				font-size: 30px;
    				color: gold;
    				z-index: 1;
    				display: none;
    			}
    			#canvas{
    				z-index: 10;
    			}
    		</style>
    	</head>
    	<body>
    		
    		<div class="wap">
    			<div class="text">一等奖</div>
    			<canvas id="canvas" width="200" height="40" ></canvas>
    		</div>
    		
    	</body>
    	<script type="text/javascript" src="js/jquery.js"></script>
    	<script type="text/javascript">
    		var canvas = document.getElementById('canvas');
    		
    		var ctx = canvas.getContext('2d');
    		
    		var pos = $('.wap').offset();
    		
    		
    		
    		ctx.fillStyle = '#ccc';
    		
    		ctx.fillRect(0,0,canvas.width,canvas.height);
    
    		$('.text').css({display:"block"});
    		ctx.globalCompositeOperation = 'destination-out';
    		
    		ctx.beginPath();
    		ctx.fillStyle = 'red';
    		ctx.strokeStyle = 'red'
    		ctx.lineWidth = 5;
    		
    		canvas.onmousedown = function(e){
    			this.run = true;
    			ctx.moveTo(e.clientX-pos.left,e.clientY-pos.top);
    		}
    		
    		canvas.onmousemove = function(e){
    			if(this.run){
    				console.log(e.clientX-pos.left,e.clientY-pos.top)
    				ctx.lineTo(e.clientX-pos.left,e.clientY-pos.top);
    				ctx.stroke();
    			}
    		}
    		
    		canvas.onmouseup = function(e){
    			ctx.stroke();
    			this.run = false;
    		}
    		
    		/*
    		 *copy:只绘制新图形,删除其它的所有内容
    		 * darker:在图形重叠的地方,其颜色由两个颜色值相减后决定
    		 * destination-atop:画布上已有的内容只会在它和新图形重叠的地方保留,新图形绘制于内容之后
    		 * destination-in:在新图形及画布上已有图形重叠的地方,画布上已有的重叠内容都保留。所有其他的内容都透明
    		 * destination-out:画布原始内容没有重叠的保留,重叠的和新画的,都是透明(刮刮乐);
    		 * destination-over:新图形绘制于画布上已有内容的后面
    		 * ligther:在图形重叠的地方,其颜色由两个颜色值相加后决定
    		 * source-atop:只有在新图形和画布上已有内容重叠的地方才绘制新的图形
    		 * source-in:在新图形和画布上已有内容重叠的地方才绘制新图形。其他内容均透明
    		 * source-out:只有在新图形和画布上已有内容不重叠的地方才绘制新的图形
    		 * source-over:新图形绘制于画布已有图形的顶部。默认设置
    		 * xor:重叠的地方透明,其他的地方正常画
    		 * 
    		 * 
    		 * */
    		
    	</script>
    </html>
    

      

  • 相关阅读:
    关于掌握C#的内存堆栈概念
    sqlserver 跨服务器查询
    写单元测试的知识结构(2)——单元测试工具的选用(找个顺手的)
    写单元测试的知识结构(1) —— 单元测试用处
    如何能保证自己的功能代码不出纰漏
    Mysql查询架构信息
    Mysql 分组查询最高分
    Mysql按照字段值做分组行转列查询
    软件测试学习笔记:主路径测试
    软件测试学习笔记:Junit入门
  • 原文地址:https://www.cnblogs.com/muamaker/p/9772038.html
Copyright © 2020-2023  润新知