js实现无刷新提示,并渐变关闭(非弹窗)——仿163,qq邮箱顶部绿色提示
于是想着自己做一个,于是就有了以下的结果。
实现原理是:
设置默认一个div元素为隐藏,提过js DOM对象实现div显示,并插入需要显示的内容。
使用.style.visibility 和.style.dispaly都可以控制元素的是否可视,但是在这里建议使用.style.visibility 属性,如果使用.style.dispaly可能会出一些小问题。比如:已经触发果了ShowMessage函数后,不刷新页面在想触发的话,会没有效果。
渐变的原理是:使用递归函数控制div 上一层div的可见度。默认是100,为最高可见。通过递归,可见度慢慢减弱。直到0为不可见。
演示地址:http://test.lovedear.info/jstest/js249.html
代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>显示提示,并渐变关闭(原创)</title>
<!--实现 支持-->
<script language="javascript">
var strHtml;
function ShowMessage(m,color){
messageBox.style.filter="alpha(opacity=100)";
messageBox.style.visibility="visible";
message.style.visibility="visible";
//录入内容
strHtml="<div style='background:"+color+"; padding:3px 10px; height:15px; color:#FFFFFF; font-size:13px;'><a>"+m+"</a></div>";
message.innerHTML=strHtml;
setTimeout("Close()",3000);//调用关闭的时间
}
var i=100;
function Close(){
if(i<=0){
message.style.visibility="hidden";
strHtml="";
//还原属性和参数
i=100;
messageBox.style.filter="alpha(opacity=100)";
messageBox.style.visibility="visible";
clearTimeout();
return;
}
else{
i--;
messageBox.style.filter="alpha(opacity="+i+")";//刷新可见度,可见度越来越低
setTimeout("Close()",10);//递归
}
return;
}
</script>
</head>
<body>
<div id="messageBox" style="width:200px; height:30px;">
<div id="message" style="dispaly:none;"></div>
</div>
由www.lovedear.com.cn编写
<br /><br /><br /><br /><br />
<a href="#" onClick='ShowMessage("无法成功...","#ef8f00")'>无法成功</a>
<br /><br />
<a href="#" onClick='ShowMessage("删除成功...","#68af02")'>删除成功</a>
<br>
<br>
</body>
</html>

