最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實(shí)現(xiàn)消滅星星案例

 更新時(shí)間:2021年11月11日 09:35:14   作者:ls22  
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)消滅星星案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了JS實(shí)現(xiàn)消滅星星的具體代碼,供大家參考,具體內(nèi)容如下

消滅星星的效果圖:

功能需求:

1、點(diǎn)擊星星,星星消失
2、每隔一秒自動(dòng)生成一顆星星
3、星星的大小、出現(xiàn)位置是隨機(jī)的

案例代碼及分析:

html和css代碼:

 * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
 
    div {
        position: relative;
        width: 1000px;
        height: 500px;
        margin: 100px auto;
        background-color: black;
    }
</style>
 
<body>
    <div>
 
    </div>
  • body里面我們只需要一個(gè)div來(lái)裝下我們隨機(jī)生成的星星
  • div盒子需要有一個(gè)定位(星星隨機(jī)出現(xiàn)的位置是根據(jù)定位的left和top值來(lái)實(shí)現(xiàn)的)

JS代碼:

var div = document.querySelector('div');//獲取到div盒子
        function creatImg(num) {
            for (var i = 0; i < num; i++) {    //隨機(jī)生成num個(gè)星星
 
                var imgs = document.createElement('img');   //創(chuàng)建img標(biāo)簽
                imgs.style.position = 'absolute';   //給星星圖片添加絕對(duì)定位
                var width = Math.floor(Math.random() * (50 - 10 + 1) + 10);
                var height = width;   //隨機(jī)生成寬度和高度,星星的寬高一致
                var top = Math.floor(Math.random() * (450 - 0 + 1) + 0);
                var left = Math.floor(Math.random() * (950 - 0 + 1) + 0);
 
                //將星星的寬、高、left、top值全部修改為隨機(jī)生成的
                imgs.style.width = width + 'px';
                imgs.style.height = height + 'px';
                imgs.style.left = left + 'px';
                imgs.style.top = top + 'px';
 
                //將星星圖片的鏈接添加到img標(biāo)簽中
                imgs.src = 'images/xingxing.gif';
            
                //將創(chuàng)建的img標(biāo)簽添加到div盒子里面
                div.appendChild(imgs);
            }
        }

注意:使用修改width、left等帶有單位的屬性的時(shí)候一定要加上單位

creatImg(5);    //調(diào)用函數(shù)并生成五顆星星
        setInterval(function () {    //每隔1s執(zhí)行一次里面的代碼
 
            var img = document.querySelectorAll('img');        //獲取到星星圖片
 
            //給每個(gè)星星添加點(diǎn)擊事件
            for (var i = 0; i < img.length; i++) {
                img[i].addEventListener('click', function () {
                    //點(diǎn)擊之后刪除點(diǎn)擊的img
                    div.removeChild(this);
                })
            }
            creatImg(1);
        }, 1000);

獲取圖片的時(shí)候是獲取div盒子里面所有的星星圖片,不是單獨(dú)的某一張

圖片獲取完之后是以偽數(shù)組的形式存在,所以可以用遍歷的方式一個(gè)一個(gè)的綁定點(diǎn)擊事件

案例所用到的JS知識(shí)點(diǎn): (帶有顏色的是案例中使用)

結(jié)點(diǎn)操作

創(chuàng)建結(jié)點(diǎn)

document.createElement()
document.createTextNode()
document.createTextNode()

添加結(jié)點(diǎn)

node.appendCild(child)(追加元素)
node.insertBefore(新的子元素,要插入的位置元素)

刪除結(jié)點(diǎn)

node.removeChild(child)     刪除父元素中的一個(gè)子結(jié)點(diǎn)

樣式屬性操作

element.style

1、element.style.backgroundColor = 'red';
2、JS里面的樣式采用駝峰命名法
3、JS修改style樣式操作,產(chǎn)生的是行內(nèi)樣式,css權(quán)重比較高

element.className

1、適用于樣式較多或者功能復(fù)雜的情況下
2、className會(huì)直接更改元素的類(lèi)名,會(huì)覆蓋原先的類(lèi)名
3、可以使用多類(lèi)名選擇器

定時(shí)器

window.setTimeout(調(diào)用函數(shù),[延遲的毫秒數(shù)]);

1、setTimeout()這個(gè)調(diào)用函數(shù)我們也成為回調(diào)函數(shù)callback
2、window可以省略
3、這個(gè)調(diào)用函數(shù)可以直接寫(xiě)函數(shù)或者函數(shù)名或則采取字符串'字符名'
4、延遲的毫秒數(shù)省略默認(rèn)是0   單位必須是毫秒
5、定時(shí)器可能有很多,經(jīng)常給定時(shí)器賦值一個(gè)標(biāo)識(shí)符
6、只執(zhí)行一次

window.setInterval(調(diào)用函數(shù),[延遲的毫秒數(shù)]);

1、setTimeout()這個(gè)調(diào)用函數(shù)我們也成為回調(diào)函數(shù)callback
2、window可以省略
3、這個(gè)調(diào)用函數(shù)可以直接寫(xiě)函數(shù)或者函數(shù)名或則采取字符串'字符名'
4、延遲的毫秒數(shù)省略默認(rèn)是0   單位必須是毫秒
5、定時(shí)器可能有很多,經(jīng)常給定時(shí)器賦值一個(gè)標(biāo)識(shí)符
6、重復(fù)執(zhí)行

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 前端MQTT詳細(xì)使用的兩種方法

    前端MQTT詳細(xì)使用的兩種方法

    MQTT(消息隊(duì)列遙測(cè)傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,這篇文章主要給大家介紹了關(guān)于前端MQTT詳細(xì)使用的兩種方法,需要的朋友可以參考下
    2024-07-07
  • javascript與Python快速排序?qū)嵗龑?duì)比

    javascript與Python快速排序?qū)嵗龑?duì)比

    這篇文章主要介紹了javascript與Python快速排序?qū)嵗龑?duì)比,實(shí)例講述了javascript與Python實(shí)現(xiàn)快速排序的簡(jiǎn)單實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • TypeScript泛型工作原理詳解

    TypeScript泛型工作原理詳解

    TypeScript 憑借其強(qiáng)大的類(lèi)型系統(tǒng),提供了一項(xiàng)稱(chēng)為泛型的功能,它使開(kāi)發(fā)人員能夠編寫(xiě)可重用和類(lèi)型安全的代碼,泛型允許您創(chuàng)建可以處理多種類(lèi)型(而不是單個(gè)類(lèi)型)的組件,本文深入探討了 TypeScript 泛型,提供了詳盡的解釋和代碼示例來(lái)說(shuō)明它們的用法和好處
    2024-02-02
  • 用JS實(shí)現(xiàn)HTML標(biāo)簽替換效果

    用JS實(shí)現(xiàn)HTML標(biāo)簽替換效果

    用JS實(shí)現(xiàn)HTML標(biāo)簽替換效果...
    2007-06-06
  • JS中數(shù)組實(shí)現(xiàn)代碼(倒序遍歷數(shù)組,數(shù)組連接字符串)

    JS中數(shù)組實(shí)現(xiàn)代碼(倒序遍歷數(shù)組,數(shù)組連接字符串)

    這篇文章主要介紹了JS中數(shù)組實(shí)現(xiàn)代碼(倒序遍歷數(shù)組,數(shù)組連接字符串),代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 40行原生js代碼實(shí)現(xiàn)前端簡(jiǎn)易路由

    40行原生js代碼實(shí)現(xiàn)前端簡(jiǎn)易路由

    路由就是指隨著瀏覽器地址欄的變化,展示給用戶(hù)的頁(yè)面也不相同,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)40行原生js代碼實(shí)現(xiàn)前端簡(jiǎn)易路由的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 原生js編寫(xiě)貪吃蛇小游戲

    原生js編寫(xiě)貪吃蛇小游戲

    這篇文章主要為大家詳細(xì)介紹了原生js編寫(xiě)貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • 詳解webpack+ES6+Sass搭建多頁(yè)面應(yīng)用

    詳解webpack+ES6+Sass搭建多頁(yè)面應(yīng)用

    這篇文章主要介紹了webpack+ES6+Sass搭建多頁(yè)面應(yīng)用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 如何獲取TypeScript的聲明文件.d.ts

    如何獲取TypeScript的聲明文件.d.ts

    這篇文章主要介紹了如何獲取TypeScript的聲明文件.d.ts 的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2018-05-05
  • JS腳本實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)秒殺點(diǎn)擊

    JS腳本實(shí)現(xiàn)網(wǎng)頁(yè)自動(dòng)秒殺點(diǎn)擊

    本篇文章主要教給大家如何用JS寫(xiě)一些商城中秒殺等自動(dòng)點(diǎn)擊功能,有這方面需要的朋友趕快學(xué)習(xí)下思路吧。
    2018-01-01

最新評(píng)論

仁化县| 朝阳市| 钟祥市| 嘉兴市| 伊通| 九龙城区| 河东区| 沐川县| 三台县| 苏州市| 湘潭县| 扎兰屯市| 祁阳县| 玛多县| 梅河口市| 肃宁县| 孝感市| 台山市| 晋宁县| 油尖旺区| 五原县| 霍邱县| 鞍山市| 海林市| 清水河县| 旌德县| 灌云县| 沂源县| 秦皇岛市| 潮安县| 万源市| 桐城市| 新营市| 利辛县| 九龙坡区| 永仁县| 保山市| 东丰县| 广丰县| 平陆县| 社旗县|