當(dāng)前位置:軟件學(xué)堂 > 資訊首頁(yè) > 網(wǎng)絡(luò)編程 > 編程其他 > JS代碼實(shí)現(xiàn)類似MSN的消息提示

JS代碼實(shí)現(xiàn)類似MSN的消息提示

2012/10/25 11:30:17作者:佚名來(lái)源:網(wǎng)絡(luò)

移動(dòng)端

【實(shí)例名稱】

JS代碼實(shí)現(xiàn)類似MSN的消息提示

【實(shí)例描述】

當(dāng)MSN中有郵件或消息時(shí),會(huì)在右下角出現(xiàn)一個(gè)提示窗口。本例學(xué)習(xí)如何制作此類型的提示效果。

【實(shí)例代碼】

 

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>類MSN提示的頁(yè)面效果-學(xué)無(wú)憂(www.yzddtk.cn)</title> <script language="JavaScript"> window.onload = viewMsg;                     //加載頁(yè)面時(shí),即刻獲取短消息 window.onresize = resizeDiv;                //根據(jù)窗體高度和寬度,改變短消息提示框的高度和寬度 window.onerror = function(){}               //出現(xiàn)錯(cuò)誤時(shí),不做任何處理 var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0; //關(guān)于位置的相關(guān)變量 function viewMsg() {    try    {      divTop = parseInt(document.getElementById("divMsg").style.top,10)     //div的x坐標(biāo)      divLeft = parseInt(document.getElementById("divMsg").style.left,10)   //div的y坐標(biāo)      divHeight = parseInt(document.getElementById("divMsg").offsetHeight,10) //div的高度      divWidth = parseInt(document.getElementById("divMsg").offsetWidth,10)   //div的寬度      docWidth = document.body.clientWidth;                                  //窗體寬度      docHeight = document.body.clientHeight;                                //窗體高度      document.getElementById("divMsg").style.top = parseInt(document.body.scrollTop,10) + docHeight + 10; //設(shè)置div的Y坐標(biāo)      document.getElementById("divMsg").style.left = parseInt(document.body.scrollLeft,10) + docWidth - divWidth //設(shè)置div的X坐標(biāo)      document.getElementById("divMsg").style.visibility="visible"   //設(shè)置div顯示      objTimer = window.setInterval("moveDiv()",10)                  //設(shè)置定時(shí)器    }    catch(e){} } function resizeDiv() {    i+=1    if (i>500) closeDiv()    try    {      divHeight = parseInt(document.getElementById("divMsg").offsetHeight,10)    //設(shè)置div高度      divWidth = parseInt(document.getElementById("divMsg").offsetWidth,10)       //設(shè)置div寬度      docWidth = document.body.clientWidth;                                       //獲取窗體寬度      docHeight = document.body.clientHeight;                                     //設(shè)置窗體高度      document.getElementById("divMsg").style.top = docHeight - divHeight + parseInt(document.body.scrollTop,10)//設(shè)置div的y坐標(biāo)      document.getElementById("divMsg").style.left = docWidth - divWidth + parseInt(document.body.scrollLeft,10)//設(shè)置div的x坐標(biāo)    }    catch(e){} } function moveDiv() {    try    {      if (parseInt(document.getElementById("divMsg").style.top,10) <= (docHeight - divHeight + parseInt(document.body.scrollTop,10)))      {        window.clearInterval(objTimer)        objTimer = window.setInterval("resizeDiv()",1)  //調(diào)整div的位置和大小      }      divTop = parseInt(document.getElementById("divMsg").style.top,10) //獲取y坐標(biāo)      document.getElementById("divMsg").style.top = divTop - 1 //調(diào)整div的Y坐標(biāo)    }    catch(e){} } function closeDiv() {    document.getElementById('divMsg').style.visibility='hidden'; //將短信息提示層隱藏    if(objTimer) window.clearInterval(objTimer);                 //清除定時(shí)器 } </script> </head> <body scroll="no"> 注意右下角的提示<br /> <DIV id=divMsg style="BORDER-RIGHT: #455690 1px solid; BORDER-TOP: #a6b4cf 1px solid; Z-INDEX:99999; LEFT: 0px; VISIBILITY: hidden; BORDER-LEFT: #a6b4cf 1px solid; WIDTH: 180px; BORDER-BOTTOM: #455690 1px solid; POSITION: absolute; TOP: 0px; HEIGHT: 116px; BACKGROUND-COLOR: #c9d3f3">    <TABLE style="BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid" cellSpacing=0 cellPadding=0 width="100%" bgColor=#cfdef4 border=0>      <TBODY>          <TR>    <TD style="FONT-SIZE: 12px;COLOR: #0f2c8c" width=30 height=24></TD>              <TD style="FONT-WEIGHT: normal; FONT-SIZE: 12px; COLOR: #1f336b; PADDING-TOP: 4px;PADDING-left: 4px" vAlign=center width="100%"> 短消息提示:</TD>              <TD style="PADDING-TOP: 2px;PADDING-right:2px" vAlign=center align=right width=19><span title=關(guān)閉 style="CURSOR: hand;color:red;font-size:12px;font-weight:bold;margin-right:4px;" onclick=closeDiv() >×</span></TD>          </TR>          <TR>              <TD style="PADDING-RIGHT: 1px;PADDING-BOTTOM: 1px" colSpan=3 height=90>                  <DIV style="BORDER-RIGHT: #b9c9ef 1px solid; PADDING-RIGHT: 13px; BORDER-TOP: #728eb8 1px solid; PADDING-LEFT: 13px; FONT-SIZE: 12px; PADDING-BOTTOM: 13px; BORDER-LEFT: #728eb8 1px solid; WIDTH: 100%; COLOR: #1f336b; PADDING-TOP: 18px; BORDER-BOTTOM: #b9c9ef 1px solid; HEIGHT: 100%"> 您有<font color=#FF0000>1</font>條新消息<BR><BR>                     <DIV align=center style="word-break:break-all"> <a href="Javascript:alert('內(nèi)容:好久不見(jiàn),出來(lái)吃飯吧')"> <font color=#FF0000>點(diǎn)擊查看短信</font></a></DIV>                  </DIV>              </TD>          </TR>      </TBODY>    </TABLE> </DIV> </body> </html>

【運(yùn)行效果】

運(yùn)行效果

【難點(diǎn)剖析】

本例中定義了div消息層的4個(gè)常用方法:·“viewMsg’’方法用來(lái)顯示提示信息,顯示時(shí)根據(jù)窗體的高度和寬度,調(diào)整div層的位置和大小;·“resizeDiv”方法用來(lái)調(diào)整div層的大小;·“moveDiv”方法用來(lái)設(shè)置div層的Y坐標(biāo),一般用于窗體文本,和位置改變時(shí);·“closeDiV”方法用來(lái)隱藏diV,調(diào)用diV的“Visibility’’屬性,并設(shè)置其值為“hidden”。

【源碼下載】

本實(shí)例JS代碼下載