javascript 延时显示隐藏DIV

<divid="div1"onmouseover="div2.style.display='block'"onmouseout="">div1</div><divid="... <div id="div1" onmouseover="div2.style.display='block'" onmouseout=" ">div1</div>
<div id="div2">div2</div>

如上两个DIV,鼠标移到DIV1上时,DIV2显示了,然后鼠标移到DIV2,再移开,2秒后DIV2隐藏,
请问怎么实现?
我想在DIV1里面判断怎么弄呢?
就是鼠标移到DIV1上,DIV2就显示,然后分两种情况:
1,鼠标没有经过DIV2,直接移开了DIV1,要让DIV2延迟隐藏,怎么写?
2,鼠标从DIV1移动到DIV2,然后又从DIV2移开,让DIV2隐藏,怎么写?

还有就是一开始DIV2会显示出来,怎么样能让DIV2一开始是隐藏的呢?
展开
 我来答
庚午月圆人
推荐于2018-03-28
知道答主
回答量:20
采纳率:0%
帮助的人:11.8万
展开全部
鼠标移到DIV1上时,DIV2显示,然后鼠标移到DIV2,再移开,2秒后DIV2隐藏:

<script type="text/javascript">
function showDiv2(){
document.getElementById("div2").style.display="block";
}
function hiddenDiv2(){
setTimeout("document.getElementById(\"div2\").style.display=\"none\"",2000);
}
</script>

<div id="div1" onmouseover="showDiv2()" onmouseout=" ">div1</div>
<div id="div2" onmouseout="hiddenDiv2()" >div2</div>
追问
你好。我试了,唯一不足是一开始DIV2是显示的。怎么样让DIV2一开始是隐藏的呢?
追答
换成下一句就行了
div2
百度网友1f463fa
2013-09-11 · TA获得超过685个赞
知道小有建树答主
回答量:600
采纳率:0%
帮助的人:468万
展开全部
var s=null;//延时器
var div1 = document.getElementById('div1');
var div2 = document.getElementById('div2');

window.onload = function(){
div1.onmouseover=function(){
if( s != null ) clearTimeout(s);

div2.style.display='block';
}
div1.onmouseout=function(){
s = setTimeout(function(){
div2.style.display='none';
},2000)
}
div2.onmouseover=function(){
if( s != null ) clearTimeout(s);
}
div2.onmouseout=function(){
if( s != null ) clearTimeout(s);
s = setTimeout(function(){
div2.style.display='none';
},2000)
}
}
其实,需要注意的是,由始至终只使用一个变量作为延时器timeout,每次触发mouseover或mouseout,令div2有所变化,需要延时的时候,先将timeout变量clear了,再设置timeout,这样可以阻止忽闪忽现的情况。

代码未经测试,纯属手打,随意乱写,仅供参考学习 ^_^

关于补充:
在DIV2加上style="display:none"就可以了
或者你喜欢可以用js document.getElementById('div2').style.display='none';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱心善行共赢
2013-09-11 · TA获得超过313个赞
知道小有建树答主
回答量:355
采纳率:0%
帮助的人:266万
展开全部
div2 增加
onmouseout="show2();"
加上这些:
<script>
function show2(){setTimeout(show3,2000);}
function show3(){div2.style.display="none";} </script>
div2用document.getElementById("div2")找到
追问
我想在DIV1里面判断怎么弄呢?
就是鼠标移到DIV1上,DIV2就显示,然后分两种情况:
1,鼠标没有经过DIV2,直接移开了DIV1,要让DIV2延迟隐藏,怎么写?
2,鼠标从DIV1移动到DIV2,然后又从DIV2移开,让DIV2隐藏,怎么写?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杭州玛莉亚四维彩超
2013-09-11 · 超过12用户采纳过TA的回答
知道小有建树答主
回答量:223
采纳率:100%
帮助的人:219万
展开全部
setTimeOut or setInterval
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
系统004
2013-09-11 · TA获得超过3254个赞
知道大有可为答主
回答量:1326
采纳率:68%
帮助的人:1140万
展开全部
您好:js的定时就可以,或者jq的setInterval()
追问

div2

div3

开始的时候DIV3是显示的
请问怎么样让DIV3开始的时候是隐藏的?
追答
那就把div加上样式:style="display:none;"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式