window.onload=function(){
        var oDiv=document.getElementById('mask');
        oDiv.onclick=function(){
            var iHeight=css(oDiv,'height');
            var iTarget=-iHeight;
            var timer=null;
            
            timer=setInterval(function(){
                var iTop=css(oDiv,'top');
                var iSpeed=Math.floor((iTarget-iTop)/1);
                var t=iTop+iSpeed;
                if(iTop<=iTarget){
                    clearInterval(timer);
                }else{
                    oDiv.style.top=t+'500px'; 
                }
            },10);
        }
    }

解决方案 »

  1.   

    window.onload=function(){
            var oDiv=document.getElementById('mask');
                var iHeight=css(oDiv,'height');
                var iTarget=-iHeight;
                var timer=null;
                
                timer=setInterval(function(){
                    var iTop=css(oDiv,'top');
                    var iSpeed=Math.floor((iTarget-iTop)/1);
                    var t=iTop+iSpeed;
                    if(iTop<=iTarget){
                        clearInterval(timer);
                    }else{
                        oDiv.style.top=t+'500px'; 
                    }
                },10000);
          }
      

  2.   

    setTimeout(弹窗口的方法,10000);//只执行一次
      

  3.   

    楼上回答的都是对的,没生效,请看以下问题:1.排查点击事件是否生效,没生效请检查获取的dom是否存在
    2.你这是计时器而不是延时器,因此每隔一段时间执行一次
    3.计时器如果正常执行,想要的效果没出来,那就是要执行的代码有问题自己要学着排错,这种思维以后会有很多地方都是这样找问题的。
      

  4.   

    把oDiv.onclick=function........
    改成setTimeout(function.........
    window.onload=function(){
            var oDiv=document.getElementById('mask');
        setTimeout(function(){
                var iHeight=css(oDiv,'height');
                var iTarget=-iHeight;
                var timer=null;            timer=setInterval(function(){
                    var iTop=css(oDiv,'top');
                    var iSpeed=Math.floor((iTarget-iTop)/1);
                    var t=iTop+iSpeed;
                    if(iTop<=iTarget){
                        clearInterval(timer);
                    }else{
                        oDiv.style.top=t+'500px'; 
                    }
                },10);
        }, 10000);
        }