码迷,mamicode.com
首页 > Web开发 > 详细

JS学习笔记 -- 延时器,提示框的应用

时间:2016-04-27 01:33:13      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

<!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>

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

JS学习笔记 -- 延时器,提示框的应用

标签:

原文地址:http://www.cnblogs.com/webellen/p/5437211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!