JS延時(shí)器提示框的應(yīng)用實(shí)例代碼解析

字號(hào):


    這篇文章主要介紹了JS延時(shí)器提示框的應(yīng)用實(shí)例代碼解析 的相關(guān)資料,需要的朋友可以參考下
    直接給大家貼代碼了,具體代碼如下所示:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>延時(shí)顯示提示框</title>
    <style>
    #div1 {
    float: left;
    width: 60px;
    height: 60px;
    background-color: aqua;
    }
    #div2 {
    position: relative;
    float: left;
    margin: 0 10px;
    width: 200px;
    height: 200px;
    background-color: #cccccc;
    display: none;
    }
    </style>
    <script>
    window.onload = function () {
    var oDiv1 = document.getElementById('div1');
    var oDiv2 = document.getElementById('div2');
    var timer = null;
    // oDiv1.onmouseover = function () {
    // clearTimeout(timer);
    // oDiv2.style.display = 'block'; //鼠標(biāo)移入div1時(shí)顯示div2
    // };
    //
    // oDiv1.onmouseout = function () {
    // timer = setTimeout(function () {
    // oDiv2.style.display = 'none'; //鼠標(biāo)移除div1時(shí)隱藏div2
    // }, 500); //為了從div1移入div2,所以移出div1時(shí)div2隱藏應(yīng)該有一個(gè)延時(shí)設(shè)置
    // };
    //
    // oDiv2.onmouseover = function () {
    // clearTimeout(timer); //清除延時(shí)器設(shè)置,當(dāng)鼠標(biāo)移入div2時(shí),div2應(yīng)當(dāng)顯示
    // };
    //
    // oDiv2.onmouseout = function () {
    // timer = setTimeout(function () {
    // oDiv2.style.display = 'none'; //當(dāng)鼠標(biāo)移出div2時(shí),div2應(yīng)當(dāng)隱藏
    // }, 500); //當(dāng)鼠標(biāo)移出div2并移入div1時(shí),div2會(huì)閃爍一下再顯示,設(shè)置一個(gè)延時(shí),清除閃爍的效果;
    // // 但是設(shè)置延時(shí)器之后,鼠標(biāo)移入div1時(shí),div2卻隱藏了,原因是setTimeout,
    // // 應(yīng)當(dāng)清除延時(shí)器,在oDiv1.onmouseover事件中添加,清除延時(shí)器的代碼
    // };
    // 由于這四個(gè)事件中代碼兩兩對(duì)應(yīng)地相同或相似,可以做如下簡(jiǎn)化處理:
    oDiv1.onmouseover = oDiv2.onmouseover = function () {
    clearTimeout(timer);
    oDiv2.style.display = 'block';
    /* 鼠標(biāo)移入div1時(shí)顯示div2,雖然oDiv2.onmouseover事件中沒(méi)有寫(xiě)oDiv2.style.display = 'block';
    但是實(shí)際上oDiv2是'block'狀態(tài),多寫(xiě)一句代碼沒(méi)有實(shí)質(zhì)性影響*/
    };
    oDiv1.onmouseout = oDiv2.onmouseout = function () {
    timer = setTimeout(function () {
    oDiv2.style.display = 'none'; //鼠標(biāo)移除div1時(shí)隱藏div2
    }, 500); //為了從div1移入div2,所以移出div1時(shí)div2隱藏應(yīng)該有一個(gè)延時(shí)設(shè)置
    };
    // 簡(jiǎn)化后的代碼執(zhí)行結(jié)果跟前面的代碼效果完全一致.
    }
    </script>
    </head>
    <body>
    <h2>延時(shí)提示框</h2>
    <div id="div1"></div>
    <div id="div2"></div>
    </body>
    </html>
    延時(shí)提示框編寫(xiě)時(shí)需要注意的點(diǎn)都記錄在注釋當(dāng)中,逐個(gè)對(duì)照注意一下,這個(gè)功能看過(guò)視頻教程之后實(shí)現(xiàn)起來(lái)比較順暢,原因是在編寫(xiě)代碼之前對(duì)所需功能做了一個(gè)列表按照列表一一實(shí)現(xiàn),出現(xiàn)問(wèn)題再進(jìn)行相應(yīng)的調(diào)整比上來(lái)直接寫(xiě)代碼強(qiáng)多了。