2013-02-12 24 views
0

發現如何隱藏SO上的帖子中的地址欄,我需要執行此腳本以獲取視口高度地址欄從視圖滾動出去之後。Web App隱藏地址欄發射太晚

但是,在滾動發生之前,H和W vaues被返回,雖然我在1秒後調用getViewPortSize()函數。點擊確定後,地址欄會滾動!

有人可以幫助我按預期工作嗎?

$(document).ready(function() { 
     window.addEventListener("load", function() { if (!window.pageYOffset) { hideAddressBar(); } }); 
     window.addEventListener("orientationchange", hideAddressBar); 

     setTimeout(getViewPortSize(), 1000); 

     function getViewPortSize() { 
      var viewportWidth = $(window).width(); 
      var viewportHeight = $(window).height(); 

      alert('viewportHeight: ' + viewportHeight); 
     } 
     function hideAddressBar() { 
      if (!window.location.hash) { 
       if (document.height < window.outerHeight) { 
        document.body.style.height = (window.outerHeight + 50) + 'px'; 
       } 

       setTimeout(function() { window.scrollTo(0, 1); }, 0); 
      } 
     } 
    }); 
+0

當然,黑客應該是將25px(Android)添加到視口高度(以及iPhone的任何高度),但這隻會是一個糟糕的解決方案。 – 2013-02-12 00:27:01

回答

0

認爲此答案:

替換的setTimeout(getViewPortSize(),1000);

有了:

$(window).scroll(function() { 
    getViewPortSize() 
}); 

因此該功能沒有啓動,直到滾動發生。