美文网首页
H5刮刮卡效果

H5刮刮卡效果

作者: 三人行慕课 | 来源:发表于2019-09-30 09:52 被阅读0次

效果图:

核心就是使用ctx.globalCompositeOperation = 'destination-out';

全部代码:

<!DOCTYPE html>

<html>

<head>

<title></title>

<style type="text/css">

.ggk{

width:200px;

height: 100px;

border:1px solid #ccc;

margin:0 auto;

color:red;

position: relative;

}

.ggk span{

position: absolute;

width:100%;

height: 100%;

text-align: center;

font-size:50px;

line-height: 100px;

}

canvas{

position: absolute;

left:0;

top:0;

}

</style>

</head>

<body>

<div class='ggk'>

<span id='span'>200元</span>

<canvas id='canvas'></canvas>

</div>

<script type="text/javascript">

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

init();

function init(){

canvas.width = 200;

canvas.height = 100;

var ctx = canvas.getContext("2d");

productResult();

drawCover(ctx);

drawStroke(ctx);

}

//往span内填充内容

function productResult(){

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

var arr = ['100元','100元','200元','300元','谢谢','谢谢','谢谢','谢谢','谢谢','谢谢'];

var text = arr[randomInt(0,arr.length-1)];

span.innerHTML = text;

}

//产生随机值

function randomInt(from,to){

return parseInt( Math.random()*(to-from+1)+from );

}

//绘制覆盖层==》灰色

function drawCover(ctx){

ctx.save();

ctx.fillStyle = "rgb(100,100,100)";

ctx.fillRect(0,0,200,100);

ctx.restore();

}

function  drawStroke(ctx){

canvas.onmousedown = function(e){

var downX = e.offsetX;

var downY = e.offsetY;

ctx.beginPath();

ctx.globalCompositeOperation = 'destination-out';

ctx.lineWidth = 10;

ctx.moveTo(downX,downY);

canvas.onmousemove = function(e){

var x = e.offsetX;

var y = e.offsetY;

ctx.lineTo(x,y);

ctx.stroke();

}

}

canvas.onmouseup = function(){

canvas.onmousemove = null;

}

}

</script>

</body>

</html>

每日分享效果附带视频:https://www.3mooc.com/front/couinfo/998

相关文章

网友评论

      本文标题:H5刮刮卡效果

      本文链接:https://www.haomeiwen.com/subject/ihscpctx.html