![]()
<!DOCTYPE html>
<html>
<head lang="en">
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1" />
<meta charset="UTF-8">
<script src="js/jquery-1.9.1.js"></script>
<title></title>
<style>
body{
background-color: #ffdcaf;
}
.gua_bg {
width: 415px;
height: 200px;
padding-top: 12px;
padding-left: 12px;
background: url(img/gua_image.png) no-repeat;
background-size: 100% 100%;
color: red;
}
.gua_bg p {
position: absolute;
width: 384px;
line-height: 173px;
text-align: center;
font-size: 30px;
}
.gua_bg canvas {
cursor: hand;
position: absolute;
}
</style>
</head>
<body>
<div class="gua_bg">
<p></p>
<canvas/>
</div>
<div class="gua_cont">
<button class="continue" >继续刮奖</button>
</div>
<div class="gua_residue">你还有<b>0</b>次刮奖机会</div>
<script>
(function(bodyStyle) {
localStorage.num=localStorage.num || 3;
$(".gua_residue b").text(localStorage.num);
$(".continue").click(function(){
localStorage.num=localStorage.num-1;
history.go(0);
});
if(localStorage.num>0){
bodyStyle.mozUserSelect = 'none';
bodyStyle.webkitUserSelect = 'none';
var img = new Image();
var canvas = document.querySelector('canvas');
canvas.style.backgroundColor='transparent';
img.addEventListener('load', function(e) {
var ctx;
var w = 403, h = 190;
var offsetX = canvas.offsetLeft,
offsetY = canvas.offsetTop;
var mousedown = false;
function layer(ctx) {
ctx.fillStyle = 'gray'; //画布填充灰色
ctx.fillRect(0, 0, w, h); //绘制“被填充”的矩形 ,坐标(0,0),w,h为宽高
}
function eventDown(e){
e.preventDefault(); //阻止元素发生默认的行为
mousedown=true; //当用户在这个元素上按下鼠标键的时候
}
function eventUp(e){
e.preventDefault();
mousedown=false;
}
function eventMove(e){
e.preventDefault();
if(mousedown) {
if(e.changedTouches){ //涉及当前(引发)事件的触摸点的列表
e=e.changedTouches[e.changedTouches.length-1];
}
var x = (e.clientX ) - offsetX || 0, //clientX返回当事件被触发时鼠标指针向对于浏览器页面的水平坐标。
y = (e.clientY) - [$(canvas).offset().top-$(document).scrollTop()]; //document.body.scrollLeft获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
//offsetX发生事件的地点在事件源元素的坐标系统中的 x 坐标和 y 坐标
with(ctx) {
beginPath(); //起始一条路径,或重置当前路径
arc(x, y, 11, 0, Math.PI * 2); // arc()用于创建圆或部分圆; x,y:圆心距边框的距离 11:半径 Math.PI * 2:圆
fillStyle="red";
fill(); //填充当前绘图(路径)
var prize="";
switch (parseInt(localStorage.num)){
case 3 : prize="京东卡"; break;
case 2 : prize="优惠券"; break;
case 1 : prize="现金红包"; break;
default : break;
}
$(".gua_bg p").text(prize);
}
}
}
canvas.width=w;
canvas.height=h;
// canvas.style.backgroundImage='url('+img.src+')';
ctx=canvas.getContext('2d'); //返回一个用于在画布上绘图的2d环境
//创建透明目标图(您已经放置在画布上的绘图)
ctx.fillStyle='transparent';
ctx.fillRect(0, 0, w, h); //绘制“被填充”的矩形 ,坐标(0,0),w,h为宽高
//创建灰色源图(您打算放置到画布上的绘图)
layer(ctx);
ctx.globalCompositeOperation = 'destination-out'; //让灰色图透明,(只有源图像外的目标图像部分会被显示,源图像是透明的)。
canvas.addEventListener('touchstart', eventDown);
canvas.addEventListener('touchend', eventUp);
canvas.addEventListener('touchmove', eventMove);
canvas.addEventListener('mousedown', eventDown);
canvas.addEventListener('mouseup', eventUp);
canvas.addEventListener('mousemove', eventMove);
});
img.src = 'img/gua_img.png';
}
})(document.body.style);
</script>
</body>
</html>