亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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
獲贊與收藏
1010

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消