<div id="temp_open" onclick="zc(0);">打开</div>
<div style="background-color:blue;filter:alpha(opacity=0);height:100px;display:none;color:white;" id="temp_close" onclick="zc(1);">关闭</div>
<script language="javascript">
var xxfaxy=document.getElementById("temp_close");
var xxfaxy_open=document.getElementById("temp_open");
//////////////////////////////////////////////////////////////////////
function zc(xc){
var flag=xc;
if(flag==0){
xxfaxy.style.display='';
xxfaxy_open.style.visibility='hidden';
var open_id=setInterval(open,100);
}
else{
xxfaxy_open.style.visibility='visible';
var close_id=setInterval(close,100);
}
}
//////////////////////////////////////////////////////////////////////
function open(){
xxfaxy.filters.alpha.opacity=xxfaxy.filters.alpha.opacity+10;
if(xxfaxy.filters.alpha.opacity==100){
clearInterval(open_id);
}
}
//////////////////////////////////////////////////////////////////////
function close(){
xxfaxy.filters.alpha.opacity=xxfaxy.filters.alpha.opacity-10;
if(xxfaxy.filters.alpha.opacity==0){
clearInterval(close_id);
xxfaxy.style.display='none';
}
}
//////////////////////////////////////////////////////////////////////
</script>
虽然效果出来了,但是报错,还有就是我想点关闭的时候,淡出完了再把打开层显示出来。

解决方案 »

  1.   

    xxfaxy.filters.alpha.opacity=xxfaxy.filters.alpha.opacity-10;这个写法就值支持IE
      

  2.   

    楼主可以试试把open_id和close_id定义成全局的试试
      

  3.   

    如果要火狐支持的话我看别人用object.style.opacity
      

  4.   

    <div id="temp_open" style="position:absolute;width:500px;height:200px;border:1px solid red;filter:alpha(opacity=100);">内容</div>
    <script language="javascript">
    (
    function(o,i,s){
    i=1;s=0.01;
    setInterval(function(){
    i+=s; s=i<0?0.01:(i>1?-0.01:s);
    if(o.filters)o.filters[0].opacity=i*100;
    else o.style.opacity=i;
    },1);
    }
    )
    (
    document.getElementById("temp_open")
    );
    </script>
    我找到一个兼容ff的,谁能把这个例子的函数改成非嵌套的那种形式啊。
      

  5.   

    动态改变opacity值即可++ or -- 淡入、淡出
      

  6.   

    jqeury中的fadeIn()和fadeOut()不是很好嘛?