2012-07-07 121 views

回答

1

我也解决了这个问题。 div位置必须设置为绝对位置,并且“display”div的位置也使用javascript进行计数。

这是my updated solution。我还简化了使用GAURANG的解决方案的代码:

function countdown(element, minutes, seconds) { 
... 
     var eld = document.getElementById('display'); 
     var eldp = getElementPosition(eld); 
     if(time == 10){ 
      el.style.top = eldp.top+'px'; 
      el.style.left = eldp.left+'px'; 
      el.style.position = 'absolute'; 
     } else if (time == 5){ 
      el.style.display='none'; 
     } 
... 
    function getElementPosition(Elem) { 
     var offsetLeft = 0, offsetTop = 0; 
     do { 
      if (!isNaN(Elem.offsetLeft)) { 
       offsetLeft += Elem.offsetLeft; 
       offsetTop += Elem.offsetTop; 
      } 
     } while(Elem = Elem.offsetParent); 
     return {top: offsetTop, left: offsetLeft }; 
    } 

的元件位置的测量是从here服用。

+0

这太棒了,谢谢!考虑到我在生产应用中需要覆盖的div,getElementPosition()将非常有用,可能不是top:0,而是:0。 – Derek 2012-07-08 02:30:23

+0

感谢Derek,我也赞成Encoder和Gaurang的解决方案。一些看起来很难看的任务也很简单。 :-) – Stano 2012-07-08 09:00:40

2

小提琴udpated。 http://jsfiddle.net/9FPG8/11/

CSS 
    #rest.onTop { 
     position:absolute; 
     top:0; 
     left:0; 
    } 

JS

if(time == 10){ 
       document.getElementById("rest").className="onTop";    
     } else if(time == 5){ 
      document.getElementById("rest").style.display="none"; 
     } else if(time == 0) { 
      el.innerHTML = "Times up!";  
      clearInterval(interval); 
      return; 
     } 
+0

感谢您提交此信息。 - DK – Derek 2012-07-08 02:31:39