美文网首页
躁动的小球 面向对象实现

躁动的小球 面向对象实现

作者: 阿迪呀dity | 来源:发表于2017-04-20 20:38 被阅读0次

    在HTML里建一个div,id="wrap"

    css样式

    *{

    margin:0;

    padding:0;

    }

    body,html{

    height:100%;

    }

    #wrap{

    height:100%;

    background-color:black;

    position:relative;

    overflow:hidden;

    }

    .ball{

    border-radius:50%;

    position:absolute;

    }

    js代码

    //工具函数,产生[min,max)范围内的随机数

    functionrandFn(min,max){

    returnparseInt(Math.random()*(max-min)+min);

    }

    //创建构造函数,由构造函数获取小球对象

    functionBoll(){

    //小球的尺寸:随机数

    varwh = randFn(20,50);

    this.width= wh; //width不是css中的,只是容器

    this.height= wh;

    //小球初始坐标点

    this.left= randFn(0,document.body.offsetWidth-wh);

    this.top= randFn(0,document.body.offsetHeight-wh);

    //小球颜色:随机

    this.color= "rgba(" + randFn(0,256) + "," + randFn(0,256) +"," + randFn(0,256) + "," + Math.random() + ")";

    //小球运动速度:随机

    this.speedX= randFn(-10,10); //有正值,有负值一开始可以往左往右

    this.speedY= randFn(-10,10);

    //开辟属性,保存创建出来的DOM节点

    this.div= document.createElement("div");

    }

    //添加绘制小球的方法

    Ball.prototype.draw= function(){

    this.div.className= "ball";

    this.div.style.width= this.width+"px";

    this.div.style.height= this.height+"px";

    this.div.style.left= this.left+"px";

    this.div.style.top= this.top+"px";

    this.div.style.backgroundColor= this.color;

    //把标签拼接进文档流

    varwrap = document.querySelector("#wrap");

    wrap.appendChild(this.div);

    }

    Boll.prototype.run= function(){

    varself = this;

    setInterval(function(){

    //this指向window

    //判断边界情况

    if(self.div.offsetLeft+ self.div.offsetWidth>=document.body.offsetWidth ||self.div.offsetLeft<0){

    self.speedX*=-1;

    }

    if(self.div.offsetTop+self.div.offsetHeight>=document.body.offsetHeight|| self.div.offsetTop<0){

    self.speedY*=-1;

    }

    self.div.style.left= self.div.offsetLeft+self.speedX+"px";

    self.div.style.top= self.div.offsetTop+self.speedY+"px";

    },10)

    }

    window.onload= function(){

    for(vari=0;i<100;i++){

    varball = new Ball();

    ball.draw();

    ball.run();

    }

    }

    相关文章

      网友评论

          本文标题:躁动的小球 面向对象实现

          本文链接:https://www.haomeiwen.com/subject/hfxrzttx.html