首页 > 其他分享 >js 右下角动态提示消息框

js 右下角动态提示消息框

时间:2022-11-19 22:38:54浏览次数:52  
标签:box function style 右下角 提示 top de js msg


js:
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);
}
}
====================
css:
.msg { width:240px;display:none; }

.pink .top,.pink .top .title,.pink .top span,.pink .bottom,.pink .bottom a {background:transparent url(images/msg_bg_pink.gif) no-repeat 0px 0px;}
.pink .center {background:url(images/center_bg_pink.gif) repeat-y;}

.blue .top,.blue .top .title,.blue .top span,.blue .bottom,.blue .bottom a {background:transparent url(images/msg_bg_blue.gif) no-repeat 0px 0px;}
.blue .center {background:url(images/center_bg_blue.gif) repeat-y;}

.msg .top{width:240px;height:25px;position:relative;}
.msg .top .title {background-position:-195px -70px;padding-left:30px;line-height:22px;width:100px;height:25px;}
.msg .top span {background-position:0px -70px;width:36px; height:17px;position:absolute;top:1px;left:198px;cursor:pointer;}
.msg .top span:hover {background-position:-43px -71px;}

.msg .center { width:240px;height:115px;}
.msg .center h3{color:#0c4e7c;text-align:center;line-height:23px;font-size:13px;}
.msg .center p{color: #0c4e7c;margin:0px 10px;line-height:20px;}

.msg .bottom {height:29px;background-position:0px -32px;}
.msg .bottom a {background-position:-120px -75px;padding-left:20px;margin:7px 10px;float:right;width:30px;height:20px;}
==================================
demo:
<!--sheyMsg start-->
<div class="msg pink" id="msgbox">
<div class="top">
<div class="title">CSDN News</div>
<span title="close" id="msgclose"></span>
</div>
<div class="center">
<h3>仿腾讯右下角消息提示</h3>
<p>showDalay:设置页面加载后显示时间延迟;<br />autoHide:显示后自动隐藏的时间,默认30秒,设置为0表示不自动隐藏;</p>
</div>
<div class="bottom"><a target="_blank" href="http://blog.csdn.net/sohighthesky/archive/2009/11/10/4795886.aspx">查看</a>
</div>
</div>
<!--sheyMsg end-->

var msg=new sheyMsg("msgbox",{
showDelay:2,//
onHide:function(){
btn.value="Show";
},
onShow:function() {
btn.value="Hide";
}
});
msg.show();

标签:box,function,style,右下角,提示,top,de,js,msg
From: https://blog.51cto.com/u_15458282/5870758

相关文章

  • js cookie 操作
    functiongetCookie(name)...{varvalue=document.cookie;vararr1=value.split(";");for(i=0;i<arr1.length;i++)...{if(value.length=......
  • js实现树的存储和遍历
    树的概念:树这样的结构挺起来十分的吓人,实际上非常的简单,树是由一个个节点组成A//\\BCDE//\FGH我们使用数组来存储......
  • JS数据类型与对象
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title></head><body><!--数据类型与对象--><script>......
  • js输出、弹窗
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title><script>window.alert("弹窗");//document.get......
  • JS语法语句、变量
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title></head><body><!--语法与语句,变量--><!--......
  • Node.js通过密钥计算验证码,无需存数据库
    Node.js通过密钥计算验证码,无需存数据库constCRC32=require('crc-32');functionXixiOtp(sKey,iKeeptime=600){constoPri={};oPri.sKey=sKey;......
  • Mybatis出现Caused by: net.sf.jsqlparser.parser.ParseException: ....异常
    今天在开发项目中遇到了一个奇怪的异常,记录一下把!异常信息如下(截取了主要的部分)Causedby:net.sf.jsqlparser.parser.ParseException:Encountered""TOP""top""at......
  • js端 分页导航条
    有些情况界面一次性加载完所有数据,table列表的形式展示:对于这样的情况有时候需要用js将这些数据进行分页显示。下面的js实现的就是纯js分页条。......
  • layui提示框、动画、设置灰色页面
    使用layui提示框:在事件触发函数中:layer.msg(" ",{skin:"class:"类名" "}),定义的类名可以修改提示的样式,提示框还有一个最小宽度min-width,需要时可修改。css动画:在sty......
  • [Bug0056] git提示Can't update(master has no tracked branch)
    问题、场景、需求(也可)git提示Can'tupdate(masterhasnotrackedbranch)场景gitlab迁移到gitee项目绑定新的地址发现报错多分支原因本地分支和远程分支没有关联,需......