ES6面向?qū)ο笾畯椥孕∏?/h1>

ES6面向?qū)ο笾畯椥孕∏?gif

還不知道ES6繼承的小伙伴可以參考http://www.reibang.com/p/3d09c6fe330e

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ES6面向?qū)ο笾畯椥孕∏?lt;/title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        body{
            overflow: hidden;
        }
    </style>
</head>
<body>

    <script type="text/javascript">

        function $(id) {
            return document.getElementById(id);
        }

        
        class Ball{
            constructor(domObj,num,width,height,bgColor,left,top,leftInc,topInc,timespace,leftDirection,topDirection) {
                let clientHeight = document.documentElement.clientHeight || document.body.clientHeight;
                let clientWidth = document.documentElement.clientWidth || document.body.clientWidth;
                let scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
                let scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;

                this.domObj = domObj;
                this.num = num || null;
                this.width = width || 100;//寬高顏色
                this.height = height || 100;
                this.bgColor = bgColor || randomRgbColor();
                this.left = left || newRandom(50,clientWidth-scrollLeft-this.width);//當(dāng)前位置
                this.top = top || newRandom(50,clientHeight-scrollTop-this.height);
                this.leftInc = leftInc || newRandom(2,4);//速度
                this.topInc = topInc || newRandom(2,4);
                this.timespace = timespace || newRandom(5,20);
                this.leftDirection = leftDirection ||newRandom(1,2);//方向
                this.topDirection = topDirection || newRandom(1,2);
                this.myTimer = null;
            }

            //小球碰撞彈回

        }

        class moveBall extends Ball{
            constructor(domObj,num,width,height,bgColor,left,top,leftInc,topInc,timespace,leftDirection,topDirection) {
                super(domObj,num,width,height,bgColor,left,top,leftInc,topInc,timespace,leftDirection,topDirection)//繼承并調(diào)用父類的參數(shù)
            }

            go() {
                this.myTimer = setInterval(() => {
                    this.left = this.left + this.leftInc*this.leftDirection;//改變球球當(dāng)前位置
                    this.top = this.top + this.topInc*this.topDirection;

                    //網(wǎng)頁(yè)網(wǎng)頁(yè)被卷去的高和左
                    let scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
                    let scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft;
                    //網(wǎng)頁(yè)可視區(qū)域?qū)捀?                    let clientHeight = document.documentElement.clientHeight || document.body.clientHeight;
                    let clientWidth = document.documentElement.clientWidth || document.body.clientWidth;

                    if (this.left-scrollLeft <= 0) {
                        //碰到左邊緣改變方向
                        this.leftDirection = 1;
                        //橫向滾動(dòng)掉的距離>可視區(qū)域的寬度-球球的寬度
                        //offsetWidth返回元素的padding+border+width屬性之和
                    }else if(this.left - scrollLeft>=clientWidth - this.domObj.offsetWidth) {
                        //碰到右邊緣改變方向
                        this.leftDirection = -1;
                    }

                    if (this.top-scrollTop <= 0) {
                        //碰到上邊緣改變方向
                        this.topDirection = 1;
                        //縱向滾動(dòng)掉的距離>可視區(qū)域的高度-球球的高度
                    }else if(this.top - scrollTop>=clientHeight - this.domObj.offsetHeight) {
                        //碰到下邊緣改變方向
                        this.topDirection = -1;
                    }


                    //改變小球位置
                    this.domObj.style.left = this.left + "px";
                    this.domObj.style.top = this.top + "px";
                    this.domObj.style.backgroundColor = this.bgColor;
                    this.domObj.style.width = this.width + "px";
                    this.domObj.style.height = this.height + "px";
                    this.domObj.style.position = "absolute";
                    this.domObj.style.borderRadius = "50%";
                },this.timespace);
            }
        }

            

        window.onload = function() {
            let ballnum = (num) => {
                let that = num;
                console.log(that);
                for (let i=0; i<num; i++) {
                    //創(chuàng)建出小球
                    let myDiv = document.createElement('div');
                    myDiv.id = "ball"+i;
                    document.body.appendChild(myDiv);
                    let ball = new moveBall($("ball"+i),that);
                    ball.go();//調(diào)用子類中的方法
                }
            }
            //調(diào)用缝裁,可以傳入多個(gè)球译暂,目前用3個(gè)演示
            ballnum(3);
        }

        function newRandom(x,y) {
            //x-y里面的隨機(jī)整數(shù)獲取
            let a = Math.floor(Math.random()*(y-x))+x;
            return a;
        }

        function randomRgbColor() {
            //生成隨機(jī)RGB顏色
            let r = Math.floor(Math.random() * 256);
            let g = Math.floor(Math.random() * 256);
            let b = Math.floor(Math.random() * 256);
            return `rgb(${r}, ${g}, $`;
        }
    </script>
</body>
</html>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者

  • 序言:七十年代末迹鹅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖秽荞,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異岗宣,居然都是意外死亡蚂会,警方通過查閱死者的電腦和手機(jī)淋样,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門耗式,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人趁猴,你說我怎么就攤上這事刊咳。” “怎么了儡司?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵娱挨,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我捕犬,道長(zhǎng)跷坝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任碉碉,我火速辦了婚禮柴钻,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘垢粮。我一直安慰自己贴届,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布蜡吧。 她就那樣靜靜地躺著毫蚓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪昔善。 梳的紋絲不亂的頭發(fā)上元潘,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音君仆,去河邊找鬼翩概。 笑死啸澡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的氮帐。 我是一名探鬼主播嗅虏,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼上沐!你這毒婦竟也來(lái)了皮服?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤参咙,失蹤者是張志新(化名)和其女友劉穎龄广,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蕴侧,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡择同,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了净宵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敲才。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖择葡,靈堂內(nèi)的尸體忽然破棺而出紧武,到底是詐尸還是另有隱情,我是刑警寧澤敏储,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布阻星,位于F島的核電站,受9級(jí)特大地震影響已添,放射性物質(zhì)發(fā)生泄漏妥箕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一更舞、第九天 我趴在偏房一處隱蔽的房頂上張望畦幢。 院中可真熱鬧,春花似錦疏哗、人聲如沸呛讲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)贝搁。三九已至,卻和暖如春芽偏,著一層夾襖步出監(jiān)牢的瞬間雷逆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工污尉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留膀哲,地道東北人往产。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像某宪,于是被迫代替她去往敵國(guó)和親仿村。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容