首页 > 编程 > JavaScript > 正文

JS延时器提示框的应用实例代码解析

2019-11-20 10:12:02
字体:
来源:转载
供稿:网友

废话不多说了,直接给大家贴代码了,具体代码如下所示:

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表