免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2558 | 回复: 0
打印 上一主题 下一主题

实现页面右下角弹出消息 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-22 15:40 |只看该作者 |倒序浏览
【实例描述】

当MSN中有邮件或消息时,会在右下角出现一个提示窗口。本例学习如何制作此类型的提示效果。

【实现代码】

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>类MSN提示的页面效果</title>

<script language="JavaScript">

window.onload = viewMsg;             //加载页面时,即刻获取短消息

window.onresize = resizeDiv;            //根据窗体高度和宽度,改变短消息提示框的高度和宽度

window.onerror = function(){}           //出现错误时,不做任何处理

var divTop,divLeft,divWidth,divHeight,docHeight,docWidth,objTimer,i = 0;                                                //关于位置的相关变量

function viewMsg()

{

   try

   {

     divTop = parseInt(document.getElementById("divMsg".style.top,10)   //div的x坐标

     divLeft = parseInt(document.getElementById("divMsg".style.left,10) //div的y坐标

     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;                //设置div的y坐标

     document.getElementById("divMsg".style.left = parseInt(document. body. scrollLeft,10) + docWidth – divWidth                                //设置div的x坐标

     document.getElementById("divMsg".style.visibility="visible" //设置div显示

     objTimer = window.setInterval("moveDiv()",10)               //设置定时器

   }

   catch(e){}

}

function resizeDiv()

{

   i+=1

   if (i>500) closeDiv()

   try

   {

     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 = docHeight - divHeight + parseInt (document.body.scrollTop,10)                                        //设置div的y坐标

     document.getElementById("divMsg").style.left = docWidth - divWidth + parseInt (document.body.scrollLeft,10)                                       //设置div的x坐标

   }

   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)      //调整div的位置和大小

     }

     divTop = parseInt(document.getElementById("divMsg").style.top,10)                                                                   //获取y坐标

     document.getElementById("divMsg").style.top = divTop – 1                                                                        //调整div的y坐标

   }

   catch(e){}

}

function closeDiv()

{

   document.getElementById('divMsg').style.visibility='hidden';                                                                      //将短信息提示层隐藏

   if(objTimer) window.clearInterval(objTimer);          //清除定时器

}

</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: 4pxADDING-left: 4px" vAlign=center width="100%"> 短消息提示:</TD>

             <TD style="ADDING-TOP: 2pxADDING-right:2px" vAlign=center align=right width=19><span title=关闭 style="CURSOR: hand;color:red;font-size: 12px;font-weight: bold;margin-right:4px;" onclick=closeDiv() >×</span></TD>

         </TR>

         <TR>

             <TD style="ADDING-RIGHT: 1pxADDING-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('内容:好久不见,出来吃饭吧')"><font color=#FF0000>点击查看短信</font></a></DIV>

                 </DIV>

             </TD>

         </TR>

     </TBODY>

   </TABLE>

</DIV>

</body>

</html>

【难点剖析】

本例中定义了div消息层的4个常用方法:

—“viewMsg”方法用来显示提示信息,显示时根据窗体的高度和宽度,调整div层的位置和大小;

—“resizeDiv”方法用来调整div层的大小;

—“moveDiv”方法用来设置div层的y坐标,一般用于窗体大小和位置改变时;

—“closeDiv”方法用来隐藏div,调用div的“visibility”属性,并设置其值为“hidden”。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP