老师为什么鼠标放上去不停止呢?

老师为什么鼠标放上去不停止呢?

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>canvas动画</title>
    <style>
        canvas{background-color:lightblue;}
    </style>
</head>
<body>
    <canvas width="800px" height="800px" id="canvas">您的浏览器不支持canvas</canvas>
    <script>
        var canvas=document.getElementById("canvas");
        var context=canvas.getContext("2d");
        //补充代码
        //方块
        context.fillStyle = 'darkseagreen';
        context.fillRect(200,0,50,50);
        var posx = 200,
            posy = 0,
            dir = 1,
            isMouseOn = false;
        setInterval(function(){
            if (!isMouseOn) {
                posy += 10*dir;
            }
            context.clearRect(0,0,canvas.width,canvas.height);
            context.fillRect(posx,posy,50,50);//位置
            if (posy+50 > canvas.height) {
                dir = -1;  //慢慢减小
            } else if (posy + 50 < 0) {
                dir = 1;
            }
        },100);
        
        
        //鼠标碰到的时候会停止
        canvas.onmouseover = function(e){
            var mouseX = e.offsetX;
            var mouseY = e.offsetY;
            if (mouseX > posx && mouseX < posx+50
            && mouseY > posy && mouseY < posy +50) {
                isMouseOn = true;
            } else{
                isMouseOn = false;
            }
        }
        
        
        
        
        
        
        
    </script>
</body>
</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕夭夭 2020-03-27 17:42:31

同学你好,没错的。绑定onmouseout事件,再把isMouseOn的值改为false即可。

祝学习愉快 !

好帮手慕夭夭 2020-03-27 11:02:54

同学你好,因为鼠标移入事件中,变量赋值写反。注意看一下,上面的判断用的是取反 ,false取反为true。

http://img1.sycdn.imooc.com//climg/5e7d6c730923b68303320086.jpg

所以如下赋值改一下,当鼠标移入时,if条件不成立,会执行else。true取反为false

http://img1.sycdn.imooc.com//climg/5e7d6cb609d364a307240322.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 小丁同学ddd #1
    老师我改完之后为什么鼠标挪开了就一直停下了?是因为没写onmouseout吗???
    2020-03-27 14:24:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师