`
ezerg
  • 浏览: 274335 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

JavaScript实现类似QQ、MSN消息提示的效果

阅读更多
最近论坛需要增加类似QQ、MSN消息提示的功能,从网上找了一些,感觉都不太方便,所以自己重新写了一个小东东,分享出来,希望对大家有用。
/////////////////////////////////////////////////////
// 2007-05-01
// EZERG ezerg@126.com
/////////////////////////////////////////////////////
function $(n){
	return document.getElementById(n);
}

function $i(i){
	try{
		return parseInt(i);
	}catch(ex){
		return 0;
	}
}

function MessageTip(id)
{
	this.id = id;
	this.obj = $(id);
	this.divTop = $i(this.obj.style.top);
	this.divLeft = $i(this.obj.style.left);
	this.divHeight = this.obj.offsetHeight;
	this.divWidth = this.obj.offsetWidth;
	this.docWidth = document.body.clientWidth;
	this.docHeight = document.body.clientHeight;
	this.timeout= 150;
	this.speed = 30;
	this.step = 3;
	this.timer = 0;
	this.pause = false;
	this.close = false;
	this.autoClose = true;
	this.add(this);
}

MessageTip.prototype.tips = new Array();

MessageTip.prototype.add = function(mt)
{
	this.tips.push(mt);
}

MessageTip.prototype.show = function()
{
	if(this.onload()){
  	var me = this;
  	var mess = this.obj;
  	mess.onmouseover = function(){me.pause=true;};
  	mess.onmouseout = function(){me.pause=false;};
  	mess.style.top = $i(document.body.scrollTop) + this.docHeight + 10;
  	mess.style.left = $i(document.body.scrollLeft) + this.docWidth - this.divWidth;	
  	mess.style.visibility = 'visible';
  	var moveUp = function()
  	{
  		var tHeight = me.divHeight;
  		var t = me.tips;
  		for(var i=0; i<t.length; i++){
  			var tt = t[i];
  			if(tt==me){
  				break;
  			}else{
  				tHeight += tt.divHeight + 3;
  			}
  		}
  		if($i(mess.style.top) <= (me.docHeight - tHeight + $i(document.body.scrollTop))){
        me.timeout--; 
        if(me.timeout==0){
  			  window.clearInterval(me.timer);
  				if(me.autoClose){
  					me.hide();
  				}
  			}
  		} else {
  			mess.style.top = $i(mess.style.top) - me.step;
  	  }
  	}
  	this.timer = window.setInterval(moveUp,this.speed);
  }
}

MessageTip.prototype.hide = function()
{
	if(this.onunload()){
		var me = this;
		var mess = this.obj;
    if(this.timer>0){
      window.clearInterval(me.timer);
    }
		var moveDown = function()
		{
			if(me.pause==false || me.close){
				if($i(mess.style.top) >= ($i(document.body.scrollTop) + me.docHeight + 10)){
			  	window.clearInterval(me.timer);
		  		mess.style.visibility='hidden';
				} else {
	  			mess.style.top = $i(mess.style.top) + me.step;
	  		}
		  }
	  }
	  this.timer = window.setInterval(moveDown,this.speed);
  }
}

MessageTip.prototype.resize = function()
{
	this.divHeight = $(this.id).offsetHeight;
	this.divWidth = $(this.id).offsetWidth;
	this.docWidth = document.body.clientWidth;
	this.docHeight = document.body.clientHeight;
	$(this.id).style.top = this.docHeight - this.divHeight + document.body.scrollTop;
	$(this.id).style.left = this.docWidth - this.divWidth + document.body.scrollLeft;	
}

MessageTip.prototype.onload = function()
{
	return true;
}

MessageTip.prototype.onunload = function()
{
	return true;
}


分享到:
评论
8 楼 junjie314 2007-05-28  
我要源代码!
7 楼 whw200297132 2007-05-17  
窗口最大化时,提示框没跟着一起移动,位置没变
6 楼 pgty 2007-05-17  
melin 写道
不好,还带动了滚动条。看了很是不爽


你在页面里加上这行就没了
document.body.scroll='no';
5 楼 skyey 2007-05-16  
你在ff/opera下看看...
4 楼 inprise_lyj 2007-05-16  
还不错。
3 楼 pgty 2007-05-15  
谢谢楼主分享,改进一下就可以用了
2 楼 melin 2007-05-05  
不好,还带动了滚动条。看了很是不爽
1 楼 kj23 2007-05-04  
不想用prototype也不能把路给堵了啊

滚动条稍微有些异常

相关推荐

    页面右下角弹出类似QQ或MSN的消息提示

    综上所述,实现"页面右下角弹出类似QQ或MSN的消息提示"这一功能,涉及到前端的JavaScript编程、CSS样式设计、动画效果实现,以及可能的后端实时通信。通过合理的技术选型和设计,可以创造出高效且用户友好的消息提示...

    页面右下角弹出消息提示框类似QQ或者MSN+ASP.NET

    综上所述,创建一个类似QQ或MSN的页面右下角弹出消息提示框涉及到前端的CSS布局、JavaScript交互、ASP.NET后端数据传递以及用户体验设计等多个方面的知识。通过合理的代码组织和充分的测试,可以实现一个高效、易用...

    【精华】页面右下角弹出类似QQ或MSN的消息提示

    标题中的“【精华】页面右下角弹出类似QQ或MSN的消息提示”指的是在网页设计中实现一种类似于即时通讯软件(如QQ、MSN)的消息提示功能。这种功能常见于许多网站,尤其是企业级应用,用于通知用户新消息、提醒或者...

    javascript实现弹消息提示框 像各大邮箱提示有新邮件收到或QQ和MSN提示

    通过以上步骤,你可以创建一个类似QQ、MSN或邮箱的新消息提示框,提供更加个性化的用户体验。这个提示框不仅可以在必要时显示信息,还可以通过关闭按钮让用户主动关闭,增强交互性。在实际项目中,还可以根据需求...

    页面右下角弹出类似QQ或MSN的消息提示.rar

    在网页设计中,为了增强用户体验和互动性,开发者经常会在页面右下角设计类似QQ或MSN的消息提示功能。这种功能可以模拟即时通讯软件中的消息通知,让用户在浏览网页时能够实时接收并查看重要信息。本教程将深入探讨...

    模仿MSN消息提示的效果

    本文将深入探讨如何实现类似MSN的消息提示效果,并提供相关技术细节。 首先,我们需要理解MSN消息提示的核心特点。这些特点包括: 1. **即时性**:当收到新消息时,系统会立即显示通知,让用户知道有新的交流内容...

    页面右下角弹出类似QQ、MSN多条消息提示(提示可连接)

    综上所述,实现“页面右下角弹出类似QQ、MSN多条消息提示”的功能,需要结合JavaScript的动态操作DOM、事件处理和CSS的样式设计。这个过程既考验开发者的技术功底,也对用户体验有着直接影响。在实际开发中,应不断...

    页面右下角弹出类似QQ或MSN的消息提示.pdf

    【网页右下角弹出类似QQ或...总之,`CLASS_MSN_MESSAGE`类提供了一种简单的方式来在网页的右下角创建具有类似QQ或MSN消息提示的动态效果。开发者可以通过调整参数和扩展方法来满足不同场景的需求,增强网页的用户体验。

    页面右下角弹出类似QQ、MSN多条消息提示(提示消息有URL链接)

    在网页设计和用户体验优化中,实现“页面右下角弹出类似QQ、MSN多条消息提示(提示消息有URL链接)”的功能是一项常见的需求。这样的功能可以让用户在浏览网站时,实时接收并交互与网站内容相关的通知,提升用户的参与...

    asp.net弹出消息框 类似msn的消息框

    在ASP.NET开发中,有时我们需要实现一种类似MSN即时通讯软件中的消息提示功能,为用户提供直观、友好的交互体验。标题和描述中提到的"asp.net弹出消息框 类似msn的消息框"实际上是在指如何在网页上创建一个模仿MSN...

    js应用的短消息提醒,类似QQ/MSN

    在本主题中,我们聚焦于如何使用JavaScript实现类似QQ或MSN的消息提醒功能,这涉及到实时通信、UI设计以及用户交互等多个方面的知识。 首先,实现这种消息提醒功能的核心技术是Websocket。Websocket是一种在客户端...

    类似QQ,MSN,邮箱右下角消息提示,定时访问数据库。

    标题中的“类似QQ,MSN,邮箱右下角消息提示,定时访问数据库”指的是在软件开发中实现一种即时通讯功能,这种功能类似于我们熟知的QQ、MSN(现已被Skype取代)以及电子邮件系统中的消息通知机制。它涉及到客户端的...

    asp.net类似QQ,MSN,邮箱右下角消息提示,定时访问数据库。

    在ASP.NET中实现类似QQ、MSN或邮箱右下角的消息提示功能,主要是通过实时更新用户界面来提供即时反馈,这通常涉及到AJAX技术、Web Socket、SignalR等实时通信技术。 首先,我们要理解这个功能的核心需求:当有新...

    Ajax弹出提示仿QQ,MSN.rar

    标题中的"Ajax弹出提示仿QQ,MSN"指的是使用Ajax技术来实现类似QQ和MSN的实时消息提示功能。Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页内容的技术。这种技术使得...

    制作 MSN、QQ 的消息提示窗口

    在IT领域,创建类似MSN和QQ的消息提示窗口是一项常见的任务,尤其在开发即时通讯软件时。这些提示窗口通常用于通知用户收到新消息或其他重要事件。本文将深入探讨如何实现这样的功能,以帮助开发者理解其背后的原理...

    仿qq,MSN页面js提示

    "qq提示"和"msn提示"代表了两种不同的风格,它们都是即时通讯软件常见的用户界面元素,而"js"则表明实现这些提示效果主要依赖JavaScript,这是一种广泛用于网页动态效果的脚本语言。JavaScript允许开发者在不刷新...

    VS2010下ASPNET类似于QQ的消息提示(AJAX)

    在本文中,我们将深入探讨如何在Visual Studio 2010环境下使用ASP.NET实现一个类似于QQ的消息提示功能,该功能采用AJAX技术实现无刷新效果。我们还将关注EeekSoft.Web.PopupWin.dll库在这一过程中的作用。 首先,...

    商业编程-源码-制作 MSN、QQ 的消息提示窗口.zip

    这个压缩包"商业编程-源码-制作 MSN、QQ 的消息提示窗口.zip"显然包含了创建类似MSN和QQ的消息提示窗口的源代码。这类窗口通常用于应用程序中显示通知、警告或者对话,是用户交互的重要组成部分。以下是对这个主题的...

    MSN,QQ气泡提示

    综上所述,"MSN,QQ气泡提示"是一个关于用户界面设计、通知机制实现和编程技术的综合主题,涵盖了多种IT技术和设计理念。通过提供的示例,开发者可以学习到如何在自己的项目中创建类似的高效通知功能。

Global site tag (gtag.js) - Google Analytics