第一次打完血量,再刷新就打不了了

第一次打完血量,再刷新就打不了了

根据这个链接https://class.imooc.com/course/qadetail/202371

的提示修改了老师的源码  测试了还是不行。

<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title></title> 
    <style type="text/css">
*{margin: 0;padding: 0;list-style: none;}
body{position: relative;height: 100%;}
html{height: 100%;}

.guai{position: absolute;left: 50%;top: 50%;margin: -75px 0 0 -100px;}
.line{width: 400px;height: 20px;border:4px solid black;position: absolute;left: 50%;top: 20px;margin: 0 0 0 -204px;}
.xie{width: 400px;height: 100%;background: red;transition: .3s;}

    </style>
</head>
<body>
    <div class='line'>
        <div class='xie'></div>
    </div>
    <img src="1.jpeg" class='guai'>
    <script type="text/javascript">
        var num = 0,timer = null,max = 400,
        xieNode = document.querySelector('.xie');

        if(localStorage.x){
            max = parseInt(localStorage.x);
            xieNode.style.width = max + 'px';
        };


        onclick = function(){
            var r = Math.random() * 5 + 5;
            max -= r;

            localStorage.setItem('x',max);
            console.log(localStorage)
            xieNode.style.width = max + 'px';


            clearInterval(timer);
            timer = setInterval(function(){
                num++;
                if(num == 10){
                    clearInterval(timer);
                    num = 0;
                    document.body.style.left = 0;
                    document.body.style.top = 0;
                    return;
                };
                document.body.style.left = Math.random() * -20 + 10 + 'px';
                document.body.style.top = Math.random() * -20 + 10 + 'px';
            },30)
        }



    </script>
</body>
</html>


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

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

3回答
好帮手慕星星 2020-08-15 15:45:21

同学你好,经过测试源码中确实也存在这个问题,可能是老师当前考虑不全导致的。可以这样修改,加一个判断

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

当max小于等于0的时候,手动存储x值为400,然后return停止代码执行。再次刷新点击就是正常的,自己再测试下。

祝学习愉快!

好帮手慕星星 2020-08-15 13:57:14

同学你好,这边测试效果没有问题,刷新以后不会变成满血。例如第一次点击之后

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

刷新之后再点击

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

这边是用chrome浏览器进行测试的,自己测试的时候建议清除浏览器缓存测试。还有看看是不是代码修改之后没有保存呢?

祝学习愉快!

  • 提问者 陈立天 #1
    老师我的意思是,当打完血条以后 再次刷新 他就是满血的,这个满血状态就无法在减血了。
    2020-08-15 14:11:11
提问者 陈立天 2020-08-15 11:16:01

我的意思是在刷新以后 他就变成满血了,但是打不了血了

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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