JS延時器提示框的應(yīng)用實(shí)例代碼解析
廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:
<!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'; //鼠標(biāo)移入div1時顯示div2
// };
//
// oDiv1.onmouseout = function () {
// timer = setTimeout(function () {
// oDiv2.style.display = 'none'; //鼠標(biāo)移除div1時隱藏div2
// }, 500); //為了從div1移入div2,所以移出div1時div2隱藏應(yīng)該有一個延時設(shè)置
// };
//
// oDiv2.onmouseover = function () {
// clearTimeout(timer); //清除延時器設(shè)置,當(dāng)鼠標(biāo)移入div2時,div2應(yīng)當(dāng)顯示
// };
//
// oDiv2.onmouseout = function () {
// timer = setTimeout(function () {
// oDiv2.style.display = 'none'; //當(dāng)鼠標(biāo)移出div2時,div2應(yīng)當(dāng)隱藏
// }, 500); //當(dāng)鼠標(biāo)移出div2并移入div1時,div2會閃爍一下再顯示,設(shè)置一個延時,清除閃爍的效果;
// // 但是設(shè)置延時器之后,鼠標(biāo)移入div1時,div2卻隱藏了,原因是setTimeout,
// // 應(yīng)當(dāng)清除延時器,在oDiv1.onmouseover事件中添加,清除延時器的代碼
// };
// 由于這四個事件中代碼兩兩對應(yīng)地相同或相似,可以做如下簡化處理:
oDiv1.onmouseover = oDiv2.onmouseover = function () {
clearTimeout(timer);
oDiv2.style.display = 'block';
/* 鼠標(biāo)移入div1時顯示div2,雖然oDiv2.onmouseover事件中沒有寫oDiv2.style.display = 'block';
但是實(shí)際上oDiv2是'block'狀態(tài),多寫一句代碼沒有實(shí)質(zhì)性影響*/
};
oDiv1.onmouseout = oDiv2.onmouseout = function () {
timer = setTimeout(function () {
oDiv2.style.display = 'none'; //鼠標(biāo)移除div1時隱藏div2
}, 500); //為了從div1移入div2,所以移出div1時div2隱藏應(yīng)該有一個延時設(shè)置
};
// 簡化后的代碼執(zhí)行結(jié)果跟前面的代碼效果完全一致.
}
</script>
</head>
<body>
<h2>延時提示框</h2>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>
延時提示框編寫時需要注意的點(diǎn)都記錄在注釋當(dāng)中,逐個對照注意一下,這個功能看過視頻教程之后實(shí)現(xiàn)起來比較順暢,原因是在編寫代碼之前對所需功能做了一個列表按照列表一一實(shí)現(xiàn),出現(xiàn)問題再進(jìn)行相應(yīng)的調(diào)整比上來直接寫代碼強(qiáng)多了。
相關(guān)文章
使用uni-app開發(fā)微信小程序的實(shí)現(xiàn)
這篇文章主要介紹了使用uni-app開發(fā)微信小程序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
iphone safari不支持position fixed的解決方法
最近一直在做移動web開發(fā),開發(fā)過程中遇到了許多問題,mobile safari不支持position: fixed就是一件很頭疼的事情2012-05-05
javascript 網(wǎng)站常用的iframe分割
就是一個頁面使用兩個iframe來調(diào)用內(nèi)容,實(shí)現(xiàn)頁面導(dǎo)航,更容易控制,可控制性好2008-06-06
bootstrap+jQuery實(shí)現(xiàn)的動態(tài)進(jìn)度條功能示例
這篇文章主要介紹了bootstrap+jQuery實(shí)現(xiàn)的動態(tài)進(jìn)度條功能,結(jié)合完整實(shí)例形式分析了bootstrap+jQuery實(shí)現(xiàn)動態(tài)進(jìn)度條的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
js parseInt("08")未指定進(jìn)位制問題
今天在做JS關(guān)于月份的判斷,對于parseInt("01")到parseInt("07");都能得到正確的結(jié)果,但如果是parseInt("08")或parseInt("09")則返回0,首先看parseInt語法:parseInt(string, radix);2010-06-06
原生JavaScript實(shí)現(xiàn)頁面滾動監(jiān)聽的方法步驟
滾動監(jiān)聽事件一般網(wǎng)頁中的返回頂部按鈕都是通過滾動監(jiān)聽事件來實(shí)現(xiàn)的,本文給大家介紹了原生JavaScript實(shí)現(xiàn)頁面滾動監(jiān)聽的方法步驟,文中通過代碼示例講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2025-03-03
實(shí)現(xiàn)變速回到頂部的JavaScript代碼
一般網(wǎng)頁的下方都會放置一個置頂按鈕, 尤其是頁面底部沒有導(dǎo)航的網(wǎng)頁, 這樣可以幫助訪客重新找到導(dǎo)航或者重溫一遍廣告 (想得真美).2011-05-05
ES6基礎(chǔ)之 Promise 對象用法實(shí)例詳解
這篇文章主要介紹了ES6基礎(chǔ)之 Promise 對象用法,結(jié)合實(shí)例形式詳細(xì)分析了ES6中 Promise 對象功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-08-08

