鼠标移到上面不能停止
来源:8-1 Canvas动画
慕粉1905369247
2020-05-15 17:00:33
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style>
canvas{background-color:lightblue;}
</style>
</head>
<body>
<canvas id="canvas" width="300px" height="300px">
您的浏览器不支持canvas
</canvas>
<script>
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var posX=0,posY=0,dir=1,isMouse=false
//绑定鼠标事件
canvas.onmousemove=function(e){
var mouseX=e.offsetX
var mouseY=e.offsetX
// 鼠标大于左边界 小于右边界
if(mouseX>posX&&mouseY<posX&&mouseY>posY+50&&mouseY<posY+50){
isMouse=true
}else{
isMouse=false
}
}
setInterval(function () {
if(!isMouse){
console.log(isMouse)
posX+=10*dir
}
ctx.clearRect(0,0,canvas.width,canvas.height)
ctx.fillRect(posX,posY,50,50)
if(posX>=canvas.width||posY>=canvas.width+50){
dir=-1
}else if(posX<=0||posY<=0){
dir=1
}
},200)
</script>
</body>
</html>
2回答
同学你好,问题如下:
(1)y轴获取的不对;
(2)判断条件错误;
可以再测试一下,祝学习愉快~
慕粉1905369247
提问者
2020-05-15
用这个代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Document</title>
<style>
canvas{background-color:lightblue;}
</style>
</head>
<body>
<canvas id="canvas" width="300px" height="300px">
您的浏览器不支持canvas
</canvas>
<script>
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var posX=0,posY=0,dir=1,isMouse=false
//绑定鼠标事件
canvas.onmousemove=function(e){
var mouseX=e.offsetX
var mouseY=e.offsetX
if(mouseX>posX&&mouseY<posX&&mouseY>posY+50&&mouseY<posY+50){
isMouse=true
}else{
isMouse=false
}
}
setInterval(function () {
if(!isMouse){
console.log(isMouse)
posX+=10*dir
}
ctx.clearRect(0,0,canvas.width,canvas.height)
ctx.fillRect(posX,posY,50,50)
if(posX+50>=canvas.width){
dir=-1
}else if(posX<=0){
dir=1
}
},200)
</script>
</body>
</html>
相似问题
回答 2
回答 1