zoukankan      html  css  js  c++  java
  • 一个简单的触壁反弹(js原生)

    <!DOCTYPE html>
    
    <html>
    
    <head>
    
    <meta charset="UTF-8">
    
    <title></title>
    
    <style type="text/css">
    
    *{padding: 0;margin: 0;}
    
    #box{width: 500px;height: 350px;border:1px solid #ccc;margin: 20px auto 0;position: relative;}
    
    #ball{width: 50px;height: 50px;background: red;position: absolute;top:0;left: 0;}
    
    #btn{width: 50px;height: 50px;cursor: pointer;background: green;}
    
    </style>
    
    </head>
    
    <body>
    
    <div id="box">
    
      <div id="ball">
    
      </div>
    
    </div>
    
    <div id="btn">
    
     
    
    </div>
    
    </body>
    
    </html>
    
    <script type="text/javascript">
    
    var box=document.getElementById("box");
    
    var ball=document.getElementById("ball");
    
    var btn=document.getElementById("btn");
    
    var speedX=10;//横向的移动速度
    
    var speedY=10;//横向的移动速度
    
    //点击更改ball的速度
    
    btn.onclick=function(){
    
    speedX=parseInt(Math.random()*4+1)+2;
    
    speedY=parseInt(Math.random()*4+1)+2;
    
    }
    
    setInterval(function(){
    
    ball.style.left=ball.offsetLeft+speedX+"px";
    
    ball.style.top=ball.offsetTop+speedY+"px";
    
    //判断ball的位置 触壁speed取反
    
    if(ball.offsetLeft>=box.clientWidth-ball.offsetWidth||ball.offsetLeft<=0){
    
    speedX*=-1;
    
    }
    
    if(ball.offsetTop>=box.clientHeight-ball.offsetHeight||ball.offsetTop<=0){
    
    speedY*=-1;
    
    }
    
    },30)
    
    </script>

    主要运用的知识点:原生的js碰撞检测

  • 相关阅读:
    Mybatis应用
    MyBatis
    jQuery中.bind() .live() .delegate() .on()的区别
    SpringMVC (八)SpringMVC返回值类型
    SpringMVC(七)参数的自动装配和路径变量
    SpringMVC (六)注解式开发
    SpringMVC (五)视图解析器
    SpringMVC (四)MultiActionController
    SourceTree的使用
    Idea中使用git
  • 原文地址:https://www.cnblogs.com/jwhgz/p/6061035.html
Copyright © 2011-2022 走看看