zoukankan      html  css  js  c++  java
  • 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'状态,多写一句代码没有实质性影响*/
                };
    
    
                oDiv1.onmouseout = oDiv2.onmouseout = function () {
                    timer = setTimeout(function () {
                        oDiv2.style.display = 'none';       //鼠标移除div1时隐藏div2
                    }, 500);     //为了从div1移入div2,所以移出div1时div2隐藏应该有一个延时设置
                };
    //            简化后的代码执行结果跟前面的代码效果完全一致.
            }
        </script>
    </head>
    <body>
    <h2>延时提示框</h2>
    <div id="div1"></div>
    <div id="div2"></div>
    </body>
    </html>

    延时提示框编写时需要注意的点都记录在注释当中,逐个对照注意一下,这个功能看过视频教程之后实现起来比较顺畅,原因是在编写代码之前对所需功能做了一个列表按照列表一一实现,出现问题再进行相应的调整比上来直接写代码强多了。

    努力成为一个高级前端开发。
  • 相关阅读:
    千峰公开课徐老师讲解前端前沿技术总结
    网站被k到可以使用关键词搜索到首页优化总结
    SEO基础内容
    react项目后台及上线步骤
    超好用的图片压缩工具,推荐给你
    属性title样式自定义
    Vue.js_devtools_5.1.0.zip【需要的可自行下载】
    js异步执行 按需加载 三种方式
    Web安全之跨站脚本攻击(XSS)
    操作数组不要只会for循环
  • 原文地址:https://www.cnblogs.com/webellen/p/5437211.html
Copyright © 2011-2022 走看看