js实现无刷新提示,并渐变关闭(非弹窗)——仿163,qq邮箱顶部绿色提示

看到,qq邮箱,163邮箱,gmail邮箱,在删除或者转移信件的时候都市在顶部刷出一个提示,渐变消失,并且页面本身不刷新。觉得这个功能很好,在网上搜索找到的都是弹窗的提示。
于是想着自己做一个,于是就有了以下的结果。
实现原理是:
设置默认一个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>

引用地址:

发表评论: