本文給大家分享的是javascript通過(guò)setTimeout實(shí)現(xiàn)延時(shí)顯示提示框的特效代碼,效果非常棒,這里推薦給大家
本文實(shí)例講述了JavaScript使用setTimeout實(shí)現(xiàn)延遲彈出警告框的方法。分享給大家供大家參考。具體如下:
先給大家展示一個(gè)延遲/定時(shí)/強(qiáng)制彈出窗口的JS代碼
參數(shù)解釋:
設(shè)置時(shí)間:Then.setTime(Then.getTime() + 1*60*60*1000)
mylove/ttan.htm(過(guò)渡網(wǎng)頁(yè))
ttan.htm中的 http://彈出網(wǎng)頁(yè)/ 是要彈出的網(wǎng)頁(yè)
scroll:1(滾動(dòng)條)
status:1(狀態(tài)欄)
help:1(幫助按鈕)
toolbar=1(工具欄)
resizable:1(是否可以用鼠標(biāo)拖動(dòng)改變大小)
dialogWidth:800px(寬度)
dialogHeight:600px(高度)
3000(延遲彈出的時(shí)間,單位:毫秒。1秒=1000毫秒)
<!--彈出廣告-->
<script language="JavaScript">
function Get(){
var Then = new Date()
Then.setTime(Then.getTime() + 1*60*60*1000)
var cookieString = new String(document.cookie)
var cookieHeader = "Cookie1="
var beginPosition = cookieString.indexOf(cookieHeader)
if (beginPosition != -1){
} else
{ document.cookie = "Cookie1=POPWIN;expires="+ Then.toGMTString()
focusid=setTimeout("focus();window.showModelessDialog('ttan.htm','','scroll:0;status:0;help:0;resizable:0;d
ialogWidth:0px;dialogHeight:0px')",3000)
window.focus();
}
}Get();
</script>
<!--彈出結(jié)束-->
ttan.htm的內(nèi)容:
<script language="javascript">
<!--
window.open("http://彈出網(wǎng)頁(yè)/");
//-->
</script>
<script LANGUAGE="JavaScript">
<!--
setTimeout('window.close();', 0)
//-->
</script>
可以實(shí)現(xiàn)同一IP一定時(shí)間內(nèi)只彈出一次,可以實(shí)現(xiàn)延遲彈出,可以實(shí)現(xiàn)強(qiáng)制彈出?。?/P>
下面的代碼執(zhí)行后點(diǎn)擊按鈕會(huì)延遲彈出一個(gè)警告框,主要演示了setTimeout的使用方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>延時(shí)顯示提示框</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時(shí)顯示div2
// };
//
// oDiv1.onmouseout = function () {
// timer = setTimeout(function () {
// oDiv2.style.display = 'none'; //鼠標(biāo)移除div1時(shí)隱藏div2
// }, 500); //為了從div1移入div2,所以移出div1時(shí)div2隱藏應(yīng)該有一個(gè)延時(shí)設(shè)置
// };
//
// oDiv2.onmouseover = function () {
// clearTimeout(timer); //清除延時(shí)器設(shè)置,當(dāng)鼠標(biāo)移入div2時(shí),div2應(yīng)當(dāng)顯示
// };
//
// oDiv2.onmouseout = function () {
// timer = setTimeout(function () {
// oDiv2.style.display = 'none'; //當(dāng)鼠標(biāo)移出div2時(shí),div2應(yīng)當(dāng)隱藏
// }, 500); //當(dāng)鼠標(biāo)移出div2并移入div1時(shí),div2會(huì)閃爍一下再顯示,設(shè)置一個(gè)延時(shí),清除閃爍的效果;
// // 但是設(shè)置延時(shí)器之后,鼠標(biāo)移入div1時(shí),div2卻隱藏了,原因是setTimeout,
// // 應(yīng)當(dāng)清除延時(shí)器,在oDiv1.onmouseover事件中添加,清除延時(shí)器的代碼
// };
// 由于這四個(gè)事件中代碼兩兩對(duì)應(yīng)地相同或相似,可以做如下簡(jiǎn)化處理:
oDiv1.onmouseover = oDiv2.onmouseover = function () {
clearTimeout(timer);
oDiv2.style.display = 'block';
/* 鼠標(biāo)移入div1時(shí)顯示div2,雖然oDiv2.onmouseover事件中沒(méi)有寫oDiv2.style.display = 'block';
但是實(shí)際上oDiv2是'block'狀態(tài),多寫一句代碼沒(méi)有實(shí)質(zhì)性影響*/
};
oDiv1.onmouseout = oDiv2.onmouseout = function () {
timer = setTimeout(function () {
oDiv2.style.display = 'none'; //鼠標(biāo)移除div1時(shí)隱藏div2
}, 500); //為了從div1移入div2,所以移出div1時(shí)div2隱藏應(yīng)該有一個(gè)延時(shí)設(shè)置
};
// 簡(jiǎn)化后的代碼執(zhí)行結(jié)果跟前面的代碼效果完全一致.
}
</script>
</head>
<body>
<h2>延時(shí)提示框</h2>
<div id="div1"></div>
<div id="div2"></div>
</body>
</html>
延時(shí)提示框編寫時(shí)需要注意的點(diǎn)都記錄在注釋當(dāng)中,逐個(gè)對(duì)照注意一下,這個(gè)功能看過(guò)視頻教程之后實(shí)現(xiàn)起來(lái)比較順暢,原因是在編寫代碼之前對(duì)所需功能做了一個(gè)列表按照列表一一實(shí)現(xiàn),出現(xiàn)問(wèn)題再進(jìn)行相應(yīng)的調(diào)整比上來(lái)直接寫代碼強(qiáng)多了。