JS延时提示框
提示框功能:当鼠标指向头像时,弹出一个信息框,鼠标可移动到信息框,当鼠标离开头像时信息框消失,当鼠标离开信息框时信息框消失。
实现功能思路:
1、获取元素。
2、当鼠标指向Div1时,Div2显示。
3、当鼠标离开Div1时,使Div2延迟0.5秒消失,这样以便有时间把鼠标移到Div2。
4、当鼠标指向Div2时,Div2显示。因为第3步设置setTimeout使Div2消失,所以把用clearTimeout()把setTimeout清除了就可以实现Div2显示了。
5、当鼠标离开Div2时,使Div2延迟0.5秒消失,这样以便有时间把鼠标指向Div1。
6、第2步已经设置了鼠标指向Div1,Div2就显示,但由于第5步设置setTimeout使Div2消失,所以在第2步加上clearTimeout()把setTimeout清除了就可以实现Div2显示了。
JS代码:
1 <script> 2 window.onload=function() 3 { 4 var oDiv1=document.getElementById('div1'); 5 var oDiv2=document.getElementById('div2'); 6 time=null; 7 8 oDiv1.onmouseover=function() 9 { 10 clearTimeout(time); 11 oDiv2.style.display='block'; 12 }; 13 14 oDiv1.onmouseout=function() 15 { 16 time=setTimeout(function(){ 17 oDiv2.style.display='none'; 18 },500); 19 }; 20 21 oDiv2.onmouseover=function() 22 { 23 clearTimeout(time); 24 }; 25 26 oDiv2.onmouseout=function() 27 { 28 time=setTimeout(function(){ 29 oDiv2.style.display='none'; 30 },500); 31 }; 32 }; 33 </script>
由于代码看起来多差不多,可以简化如下:
1 <script> 2 window.onload=function() 3 { 4 var oDiv1=document.getElementById('div1'); 5 var oDiv2=document.getElementById('div2'); 6 time=null; 7 8 oDiv2.onmouseover=oDiv1.onmouseover=function() 9 { 10 clearTimeout(time); 11 oDiv2.style.display='block'; 12 }; 13 14 oDiv2.onmouseout=oDiv1.onmouseout=function() 15 { 16 time=setTimeout(function(){ 17 oDiv2.style.display='none'; 18 },500); 19 }; 20 }; 21 </script>
HTML、CSS代码:
<div id="div1"></div> <div id="div2"></div> <style> #div1{float:left;margin-right:10px;width:50px;height:50px;background:black;} #div2{display:none;float:left;width:200px;height:200px;background:#0CF;} </style>