类似MSN弹出框的JavaScript代码

收藏一个网页弹MSN框的JS代码:

  1. <html> 
  2. <head> 
  3. <meta http-equiv="Content-Type" content="text/html; charset=gb2312"
  4. <meta name="Keywords" content="51windows.Net"
  5. <META NAME="Author" CONTENT="haiwa"
  6. <title>类似MSN提示的页面效果 </title> 
  7. </head> 
  8. <body scroll=no> 
  9. 看到右下角的提示了吗?如果没有看到, <button οnclick=location.reload();>刷新 </button>一下 
  10. <script language="JavaScript"
  11. window.onload = getMsg; 
  12. window.onresize = resizeDiv; 
  13. window.onerror = function(){} 
  14. //短信提示使用(asilas添加) 
  15. var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0; 
  16. function getMsg() 
  17.   try
  18.   divTop = parseInt(document.getElementById("eMeng").style.top,10) 
  19.   divLeft = parseInt(document.getElementById("eMeng").style.left,10) 
  20.   divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10) 
  21.   divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10) 
  22.   docWidth = document.body.clientWidth; 
  23.   docHeight = document.body.clientHeight; 
  24.   document.getElementById("eMeng").style.top = parseInt(document.body.scrollTop,10) + docHeight + 10;// divHeight 
  25.   document.getElementById("eMeng").style.left = parseInt(document.body.scrollLeft,10) + docWidth - divWidth 
  26.   document.getElementById("eMeng").style.visibility="visible" 
  27.   objTimer = window.setInterval("moveDiv()",10) 
  28.   } 
  29.   catch(e){} 
  30. function resizeDiv() 
  31.   i+=1 
  32.   if(i>500) closeDiv() 
  33.   try
  34.   divHeight = parseInt(document.getElementById("eMeng").offsetHeight,10) 
  35.   divWidth = parseInt(document.getElementById("eMeng").offsetWidth,10) 
  36.   docWidth = document.body.clientWidth; 
  37.   docHeight = document.body.clientHeight; 
  38.   document.getElementById("eMeng").style.top = docHeight - divHeight + parseInt(document.body.scrollTop,10) 
  39.   document.getElementById("eMeng").style.left = docWidth - divWidth + parseInt(document.body.scrollLeft,10) 
  40.   } 
  41.   catch(e){} 
  42. function moveDiv() 
  43.   try 
  44.   { 
  45.   if(parseInt(document.getElementById("eMeng").style.top,10) <= (docHeight - divHeight + parseInt(document.body.scrollTop,10))) 
  46.   { 
  47.   window.clearInterval(objTimer) 
  48.   objTimer = window.setInterval("resizeDiv()",1) 
  49.   } 
  50.   divTop = parseInt(document.getElementById("eMeng").style.top,10) 
  51.   document.getElementById("eMeng").style.top = divTop - 1 
  52.   } 
  53.   catch(e){} 
  54. function closeDiv() 
  55.   document.getElementById('eMeng').style.visibility='hidden'
  56.   if(objTimer) window.clearInterval(objTimer) 
  57. </script> 
  58. <DIV id=eMeng 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"
  59.   <TABLE style="BORDER-TOP: #ffffff 1px solid; BORDER-LEFT: #ffffff 1px solid" cellSpacing=0 cellPadding=0 width="100%" bgColor=#cfdef4 border=0> 
  60.   <TBODY> 
  61.     <TR> 
  62.       <TD style="FONT-SIZE: 12px; BACKGROUND-IMAGE: url(msgTopBg.gif); COLOR: #0f2c8c" width=30 height=24> </TD> 
  63.       <TD style="FONT-WEIGHT: normal; FONT-SIZE: 12px; BACKGROUND-IMAGE: url(msgTopBg.gif); COLOR: #1f336b; PADDING-TOP: 4px;PADDING-left: 4px" vAlign=center width="100%"> 短消息提示: </TD> 
  64.       <TD style="BACKGROUND-IMAGE: url(msgTopBg.gif); PADDING-TOP: 2px;PADDING-right:2px" vAlign=center align=right width=19> <span title=关闭 style="CURSOR: hand;color:red;font-size:12px;font-weight:bold;margin-right:4px;" οnclick=closeDiv() >× </span> <!-- <IMG title=关闭 style="CURSOR: hand" οnclick=closeDiv() hspace=3 src="msgClose.jpg"> --> </TD> 
  65.     </TR> 
  66.     <TR> 
  67.       <TD style="PADDING-RIGHT: 1px; BACKGROUND-IMAGE: url(1msgBottomBg.jpg); PADDING-BOTTOM: 1px" colSpan=3 height=90> 
  68.         <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> 
  69.         <DIV align=center style="word-break:break-all"> <a href="javascript:alert('你好')"> <font color=#FF0000>点击查看短信 </font> </a> </DIV 
  70.         </DIV> 
  71.       </TD> 
  72.     </TR> 
  73.   </TBODY> 
  74.   </TABLE> 
  75. </DIV> 
  76. </body> 
  77. </html> 

使用心得

在使用了一次上面这段摘抄过来的代码后,发现有他的CloseDiv方法太简单,效果不统一,所以我做了如下修改:

  1. function closeDiv() 
  2. {          
  3.    if(objTimer) window.clearInterval(objTimer)  //关闭后就不要调整DIV了
  4.    try 
  5.    {          
  6.      if(parseInt(document.getElementById("eMeng").style.top,10) <= (docHeight + parseInt(document.documentElement.scrollTop,10))) 
  7.      { 
  8.        divTop = parseInt(document.getElementById("eMeng").style.top,10) 
  9.        document.getElementById("eMeng").style.top = divTop + 1 
  10.        //objTimer = window.setInterval("closeDiv()",10) 
  11.        setTimeout("closeDiv()",10);  //加上这个就可以弹走了
  12.      } 
  13.      else
  14.      {
  15.        document.getElementById('eMeng').style.visibility='hidden'
  16.        document.getElementById('eMeng').style.top = docHeight - divHeight;            
  17.      }                    
  18.     } 
  19.     catch(e){}           
  20. }
  21.     

还有一个问题,在.NET中使用document.body.clientHeight时,值不是当前页面的可视高度,可以做下修改:

document.body.clientWidth-> document.documentElement.clientWidth
document.body.clientHeight -> document.documentElement.clientHeight

 

这个例子在传入参数和DIV的控制性上还可以优化.等相关应用尝试后在修改吧.


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值