JS延時器提示框的應用實例代碼解析

字號:


    這篇文章主要介紹了JS延時器提示框的應用實例代碼解析 的相關資料,需要的朋友可以參考下
    直接給大家貼代碼了,具體代碼如下所示:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>延時顯示提示框</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'; //鼠標移入div1時顯示div2
    // };
    //
    // oDiv1.onmouseout = function () {
    // timer = setTimeout(function () {
    // oDiv2.style.display = 'none'; //鼠標移除div1時隱藏div2
    // }, 500); //為了從div1移入div2,所以移出div1時div2隱藏應該有一個延時設置
    // };
    //
    // oDiv2.onmouseover = function () {
    // clearTimeout(timer); //清除延時器設置,當鼠標移入div2時,div2應當顯示
    // };
    //
    // oDiv2.onmouseout = function () {
    // timer = setTimeout(function () {
    // oDiv2.style.display = 'none'; //當鼠標移出div2時,div2應當隱藏
    // }, 500); //當鼠標移出div2并移入div1時,div2會閃爍一下再顯示,設置一個延時,清除閃爍的效果;
    // // 但是設置延時器之后,鼠標移入div1時,div2卻隱藏了,原因是setTimeout,
    // // 應當清除延時器,在oDiv1.onmouseover事件中添加,清除延時器的代碼
    // };
    // 由于這四個事件中代碼兩兩對應地相同或相似,可以做如下簡化處理:
    oDiv1.onmouseover = oDiv2.onmouseover = function () {
    clearTimeout(timer);
    oDiv2.style.display = 'block';
    /* 鼠標移入div1時顯示div2,雖然oDiv2.onmouseover事件中沒有寫oDiv2.style.display = 'block';
    但是實際上oDiv2是'block'狀態(tài),多寫一句代碼沒有實質性影響*/
    };
    oDiv1.onmouseout = oDiv2.onmouseout = function () {
    timer = setTimeout(function () {
    oDiv2.style.display = 'none'; //鼠標移除div1時隱藏div2
    }, 500); //為了從div1移入div2,所以移出div1時div2隱藏應該有一個延時設置
    };
    // 簡化后的代碼執(zhí)行結果跟前面的代碼效果完全一致.
    }
    </script>
    </head>
    <body>
    <h2>延時提示框</h2>
    <div id="div1"></div>
    <div id="div2"></div>
    </body>
    </html>
    延時提示框編寫時需要注意的點都記錄在注釋當中,逐個對照注意一下,這個功能看過視頻教程之后實現起來比較順暢,原因是在編寫代碼之前對所需功能做了一個列表按照列表一一實現,出現問題再進行相應的調整比上來直接寫代碼強多了。