???? 作者主页:Java李杨勇
???? 简介:Java领域优质创作者????、【java李杨勇】公号作者✌ 简历模板、学习资料、面试题库、技术互助【关注我,都给你】
???? 欢迎点赞 ???? 收藏 ⭐留言 ????
效果演示: 文末获取源码
代码目录:
主要代码实现:
CSS样式:
* {
margin: 0;
padding: 0;
}
.box {
width: 320px;
height: 410px;
background: url("img/gao1.jpg") no-repeat;
background-size: 100% 100%;
position: relative;
/*margin: 0 auto;*/
}
#myCanvas {
position: absolute;
left: 0;
top: 0;
}
javascript代码 :
<script type="text/javascript">
var myCanvas = document.getElementById("myCanvas");
var can = myCanvas.getContext("2d");
var X = myCanvas.width;
var Y = myCanvas.height;
var oImg = new Image();
oImg.src = "img/gao4.jpeg";
oImg.onload = function() {
can.beginPath();
can.drawImage(oImg, 0, 0, X, Y);
can.closePath();
}
var device = /android|iphone|ipad|ipod|webos|iemobile|opear mini|linux/i.test(navigator.userAgent.toLowerCase());
var startEvtName = device ? "touchstart" : "mousedown";
var moveEvtName = device ? "touchmove" : "mousemove";
var endEvtName = device ? "touchend" : "mouseup";
function draw(event) {
var x = device ? event.touches[0].clientX : event.clientX;
var y = device ? event.touches[0].clientY : event.clientY;
//console.log(x,y);
can.beginPath();
can.globalCompositeOperation = "destination-out";
can.arc(x, y, 20, 0, Math.PI * 2, false);
can.fill();
can.closePath();
}
//true 捕获 false 冒泡
myCanvas.addEventListener(startEvtName, function() {
myCanvas.addEventListener(moveEvtName, draw, false);
}, false);
myCanvas.addEventListener(endEvtName, function() {
myCanvas.removeEventListener(moveEvtName, draw, false);
}, false);
</script>
上面的图片大家引入自己喜欢的就行
源码获取
打卡 文章 更新 50 / 100天