php模仿qq消息数量,模仿QQ消息提示功能的web实现

此文中的代码只是从做的一项目中扣出的,省略了AJAX与后台通信的的代码,代码如下:

一个消息测试例子!

模仿QQ消息提示功能的web实现。2008-09-17

function CLASS_MSN_MESSAGE(id,width,height,caption,title,message,target,action)

{

this.id = id;

this.title = title;

this.caption= caption;

this.message= message;

this.target = target;

this.action = action;

this.width = width?width:200;

this.height = height?height:120;

this.timeout= 500;

this.speed = 120;

this.step = 1;

this.right = screen.width -1;

this.bottom = screen.height;

this.left = this.right - this.width;

this.top = this.bottom - this.height;

this.timer = 0;

this.pause = false;

this.close = false;

this.autoHide = true;

}

/**//*

* 隐藏消息方法

*/

CLASS_MSN_MESSAGE.prototype.hide = function()

{

if(this.onunload()){

var offset = this.height>this.bottom-this.top?this.height:this.bottom-this.top;

var me = this;

if(this.timer>0){

window.clearInterval(me.timer);

}

var fun = function(){

if(me.pause==false||me.close){

var x = me.left;

var y = 0;

var width = me.width;

var height = 0;

if(me.offset>0){

height = me.offset;

}

y = me.bottom - height;

if(y>=me.bottom){

window.clearInterval(me.timer);

me.Pop.hide();

} else {

me.offset = me.offset - me.step;

}

me.Pop.show(x,y,width,height);

}

}

this.timer = window.setInterval(fun,this.speed)

}

}

/**//*

* 消息卸载事件,可以重写

*/

CLASS_MSN_MESSAGE.prototype.onunload = function()

{

return true;

}

/**//*

* 消息命令事件,要实现自己的连接,请重写它

*

*/

CLASS_MSN_MESSAGE.prototype.oncommand = function()

{

this.close = true;

this.hide();

window.open("http://www.baidu.com");

}

/**//*

* 消息显示方法

*/

CLASS_MSN_MESSAGE.prototype.show = function()

{

var oPopup = window.createPopup(); //IE5.5+

this.Pop = oPopup;

var w = this.width;

var h = this.height;

var str = "

"

str += "

str += "

"

str += "

"

str += "

" + this.caption + ""

str += "

"

str += "×

"

str += "

"

str += "

"

str += "

"

str += "

" + this.title + "
"

str += "

"

str += "

"

str += "

"

str += "

"

str += "

"

str += "

"

oPopup.document.body.innerHTML = str;

this.offset = 0;

var me = this;

oPopup.document.body.onmouseover = function(){me.pause=true;}

oPopup.document.body.onmouseout = function(){me.pause=false;}

var fun = function(){

var x = me.left;

var y = 0;

var width = me.width;

var height = me.height;

if(me.offset>me.height){

height = me.height;

} else {

height = me.offset;

}

y = me.bottom - me.offset;

if(y<=me.top){

me.timeout--;

if(me.timeout==0){

window.clearInterval(me.timer);

if(me.autoHide){

me.hide();

}

}

} else {

me.offset = me.offset + me.step;

}

me.Pop.show(x,y,width,height);

}

this.timer = window.setInterval(fun,this.speed)

var btClose = oPopup.document.getElementById("btSysClose");

btClose.onclick = function(){

me.close = true;

me.hide();

}

var btCommand = oPopup.document.getElementById("btCommand");

btCommand.onclick = function(){

me.oncommand();

}

var ommand = oPopup.document.getElementById("ommand");

ommand.onclick = function(){

//this.close = true;

me.hide();

window.open(ommand.href);

}

}

/**//*

** 设置速度方法

**/

CLASS_MSN_MESSAGE.prototype.speed = function(s){

var t = 20;

try {

t = praseInt(s);

} catch(e){}

this.speed = t;

}

/**//*

** 设置步长方法

**/

CLASS_MSN_MESSAGE.prototype.step = function(s){

var t = 1;

try {

t = praseInt(s);

} catch(e){}

this.step = t;

}

CLASS_MSN_MESSAGE.prototype.rect = function(left,right,top,bottom){

try {

this.left = left !=null?left:this.right-this.width;

this.right = right !=null?right:this.left +this.width;

this.bottom = bottom!=null?(bottom>screen.height?screen.height:bottom):screen.height;

this.top = top !=null?top:this.bottom - this.height;

} catch(e){}

}

/************************************/

function showalarm()

{ var desc="我叫强强,我困!"+'
'+"我好饿!";

var name="mht";

var cmptime;

var now=new Date();

var hour=now.getHours();

var minute=now.getMinutes();

cmptime=hour.toString()+":"+minute.toString();

//

var header="您有1个新的消息来自 "+name+" "+cmptime;

var MSG1 = new CLASS_MSN_MESSAGE("aa",200,120,"提示:",header,desc);

MSG1.rect(null,null,null,screen.height-50);

MSG1.speed = 10;

MSG1.step = 5;

MSG1.show();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值