为了账号安全,请及时绑定邮箱和手机立即绑定

js实现物体随机出现详解

标签:
JavaScript

按F5或者刷新,苹果会在大盒子里随机出现,此功能可以延伸实现贪吃蛇

  • 初始化函数,里面是初始化的值

  • 创建食物函数
    1、因为是随机的,使用Math.random()
    2、随机函数的区间是0-1,所以乘以大盒子的每一单位 mapW/20
    3、利用绝对定位,给他赋值left和top
    4、left和top就是坐标(x,y)乘以自身宽高(20)

  • 最后将食物插入到大盒子里面

<!DOCTYPE html><html><head>
    <title></title>
    <style type="text/css">
        *{            padding: 0;            margin:0;
        }        ul li {            list-style: none;
        }        #box{            width: 500px;            height: 500px;            border:1px solid #ccc;            margin:20px auto;            position: relative;
        }        .food{            background:url(https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1538543361538&di=a179790c81e99f56d7675349f4565ea1&imgtype=0&src=http%3A%2F%2Fimgsrc.baidu.com%2Fimgad%2Fpic%2Fitem%2F37d12f2eb9389b508e646c9b8f35e5dde6116e64.jpg);            width: 20px;            height: 20px;            background-size:100%;
        }    </style></head><body><div id="box"></div></body><script type="text/javascript">
    var box = document.getElementById("box");    // 初始化函数
    function init(){        // 宽高初始值
        this.mapW = parseInt(getComputedStyle(box).width);        this.mapH = parseInt(getComputedStyle(box).height);        // 小盒子初始值
        this.foodW = 20;        this.foodH = 20;        // 坐标初始值
        this.foodX = 0;        this.foodY = 0;
        startGame();
    }    function startGame(){
        food()
    }    function food(){        // 创建小盒子
        var food = document.createElement("div");        
        /*
            1、因为是随机的,使用Math.random()
            2、随机函数的区间是0-1,所以乘以大盒子的每一单位 mapW/20
            3、利用绝对定位,给他赋值left和top
            4、left和top就是坐标(x,y)乘以自身宽高(20)
        */
        this.foodX = Math.floor(Math.random() * (this.mapW/20));        this.foodY = Math.floor(Math.random() * (this.mapH/20));
        food.style.position = "absolute";
        food.style.left = (this.foodX * 20) + "px";
        food.style.top = (this.foodY * 20) + "px";        // 最后插入到大盒子里面
        box.appendChild(food).setAttribute("class","food")
    }
    init()</script></html>



作者:jia林
链接:https://www.jianshu.com/p/e0574f28b7ba


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
205
获赞与收藏
1008

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消