zoukankan      html  css  js  c++  java
  • JS关于小球撞墙问题

      学习了JS,自己写了一个关于小球撞墙的小练习,呈现的的效果是点击框里的空白会出现小球去撞红色的墙,墙后面有一个血槽,小球撞一下,血槽的血就少一格,当血槽里的血都消失时,墙消失.下面是具体实现的代码.

    一.首先是body里的内容:创建一个大的div块,里面包含两个元素,是两个div快当作墙和血槽

    <body>
          <div id="wrap">
               <div id="wall"></div>
               <div id="blood"></div>
          </div>
    </body>

    二.是css中的样式

     *{

        margin:0;

        padding:0;

      }

    #wrap{

        800px;

        height:300px;

        border:1px solid black;

        position:relative;

        margin: 50px auto;

    }

    #wall{

        50px;

        height:100px;

        background:red;

        position:absolute;

        top:100px;

        right:50px;

    }

    #blood{

       10px;

       height:100px;

       border:1px solid black;

       background:red;

       box-sizing:border-box;

       position:absolute;

       top:100px;

       right:30px;

    }

    #ball{

       30px;

       height:30px;

       background:purple;

       border-radius:50%;

       position:absolute;

       top:135px;

       left:0;

    }

    .sblood{

        10px;

        height:10px;

        background:red;

        border:1px solid black;

        box-sizing:border-box;

    }

    三.JS中的代码

    <script type="text/javascript">
        var wrap = document.getElementById('wrap');
        var wall = document.getElementById('wall');
        var blood = document.getElementById('blood');

      补血
       var sblood;
       for(var i=0;i<10;i++){
       sblood = document.createElement('div');
       sblood.className = 'sblood';
       blood.appendChild(sblood);
    }
      wall.blood = 10; 

      创建小球
      function createBall(){
      var ball = document.createElement('div');
      ball.id = 'ball';
      wrap.appendChild(ball);


      var timer = null;
      var offValue = ball.offsetLeft;
      ball.move = function (){

      timer = setInterval(function(){
      offValue += 10;
      ball.style.left = offValue+'px';

     判断是否撞墙
      if (offValue >= wall.offsetLeft-ball.offsetWidth) {
      wall.blood--;
      if (wall.blood>=0) {
      blood.childNodes[10-wall.blood-1].style.opacity = 0;
      ball.clear();
    }
      if (wall.blood<=0) {
      wall.remove();
      blood.remove();
     }
    }
    墙没有的时候才会撞到这
      if (offValue >= wrap.offsetWidth-ball.offsetWidth) {
      ball.clear();
     }
     },10);
    }
      ball.clear = function (){
      ball.remove();
      clearInterval(timer);
    }
      ball.move();
    }
      wrap.onclick = function(){
      createBall();
    }
    </script>

      

    总有一天我会到达一个高度,让我看到不一样的风景!
  • 相关阅读:
    ASP.NET MVC 3.0(八): MVC 3.0 传递和保存你的Model
    ASP.NET MVC 3.0(十九): MVC 3.0 实例之使用开源控件实现表格排序和分页
    ASP.NET MVC 3.0(十二): MVC 3.0 使用自定义的Html控件
    ASP.NET MVC 3.0(十七): MVC 3.0 实例之表格中数据的筛选
    ASP.NET MVC 3.0 学习系列
    ASP.NET MVC 3.0(五): 入手Controller/Action
    ASP.NET MVC 3.0(十五): MVC 3.0 实例系列之表格的排序
    ASP.NET MVC 3.0(十): MVC 3.0 使用 Forms身份验证
    ASP.NET MVC 3.0(九): MVC 3.0 验证你的Model
    设计功能与界面的测试
  • 原文地址:https://www.cnblogs.com/sunshineAimee/p/5988194.html
Copyright © 2011-2022 走看看