- /*
- *Author:sohighthesky
- *From:http://www.uedsky.com/
- *Date:2009-11-9
- */
- /*
- *box 指定要显示消息框或者其id
- *options:参见代码中setOptions中的注释
- */
- var sheyMsg=function(box,options) {
- this.box=this.g(box);
- this.setOptions(options);
- this.init();
- }
- sheyMsg.prototype={
- ae:function(e,call) {
- if(window.addEventListener)window.addEventListener(e,call,false);
- else window.attachEvent("on"+e,call);
- },
- g:function(id) {return typeof(id)=="string"?document.getElementById(id):id; },
- isFixed:!window.ActiveXObject || (navigator.userAgent.indexOf("MSIE 6")==-1 && document.compatMode=="CSS1Compat"),
- setOptions:function(options) {
- this.options={//默认配置
- showDelay:10,//显示延时
- autoHide:30,//自动隐藏时间,设置为0时,不自动隐藏
- onShow:function(){},//显示后调用
- onHide:function(){}//隐藏后调用
- };
- for(var o in options) {
- this.options[o]=options[o];
- }
- },
- hide:function() {//隐藏
- var _top=this.box.clientHeight;
- var o=this;
- if(/ing$/.test(o.status))return;
- o.status="hiding";
- clearTimeout(o.tt);
- o.t=setInterval(function() {
- if(o.isFixed)
- o.box.style.bottom=(-o.box.clientHeight+(--_top))+'px';
- else
- o.box.style.top=o.de.scrollTop+o.de.clientHeight-5-(--_top) +"px";
- if(_top==-5) {
- clearInterval(o.t);
- o.status="hide";
- o.box.style.display="none";
- o.options.onHide();
- }
- },5);
- },
- show:function() {//显示
- var _top=0;
- var o=this;
- if(/ing$/.test(o.status))return;
- o.status="showing";
- clearTimeout(o.tt);
- o.box.style.display="block";
- o.t=setInterval(function() {
- if(o.isFixed)
- o.box.style.bottom=(-o.box.clientHeight+(++_top))+"px";
- else
- o.box.style.top=(o.de.scrollTop+o.de.clientHeight-5-(++_top)) +"px";
- if(_top==o.box.clientHeight) {
- clearInterval(o.t);
- o.status="show";
- o.options.onShow();
- var h=o.options.autoHide-0;
- if(h) o.tt=setTimeout(function() {o.hide();},h*1000);
- }
- },1);
- },
- fixIE6:function() {//IE6 滚动定位
- this.box.style.left=this.de.scrollLeft+this.de.clientWidth-this.box.clientWidth-2+"px";
- if(this.status=="show") {
- this.box.style.top=this.de.scrollTop+this.de.clientHeight-this.box.clientHeight-5+"px";
- } else if(this.status=="hide") {
- this.box.style.top=this.de.scrollTop+this.de.clientHeight+5+"px";
- }
- },
- init:function() {
- with(this.box.style) {
- display="block";//显示之后才能取出宽度和高度
- if(this.isFixed) {
- position="fixed";
- right="2px";
- bottom=(-this.box.clientHeight-5)+"px";
- } else {
- position="absolute";
- }
- }
- this.status="hide";
- var o=this;
- if(!this.isFixed) {
- o.de=document.compatMode=="CSS1Compat"?document.documentElement:document.body;
- var timer;
- this.ae("resize",function() { clearTimeout(timer);timer=setTimeout(function(){o.fixIE6.call(o)},30);});
- this.ae("scroll",function() { clearTimeout(timer);timer=setTimeout(function(){o.fixIE6.call(o)},30);});
- this.fixIE6();//加载时指定位置
- }
- o.box.style.display="none";
- o.tt=setTimeout(function() {o.show();},o.options.showDelay*1000);
- }
- }
右下角滑出窗口
最新推荐文章于 2024-09-08 19:17:17 发布