2012-02-22 54 views
5

所以我一直在構建自己的移動webapp,並試圖在用戶旋轉手機(我有一個由js設置的肖像和風景佈局)後隱藏佈局的重新洗牌。消防功能調整大小與方向變化的內容?

我曾認爲我應該能夠後一秒鐘左右設置$('body').display = "none";當調整大小火災和掉色機身背面的,但是洗牌仍然在display = "none"踢之前發生。

有什麼辦法在頁面旋轉後立即觸發一個函數,以便我可以隱藏重新洗牌元素?我也嘗試過改變聽衆,但他們似乎在事件發生後直接開槍。

回答

0

你可以用一個超時延遲的重新洗牌:

$(window).resize(function(){ 
    $('body').hide(); 
    setTimeout(function(){ 
     reshuffle(); 
     $('body').show(); 
    }, 100);//100ms 
}); 
+0

感謝輸入,那幾乎是完全相同的代碼,即時通訊目前使用的瀏覽器似乎呈現新的方向與老CSS值佈局.hide有時間通過​​調整大小(所以對於50ms左右,我可以看到unshuffled佈局)被解僱之前,我認爲這可能不可行= s – user885663 2012-02-22 02:11:22

+0

謝謝,我將它附加到我的onorientationchange事件中,而不是調整大小隻是爲了再次嘗試,它似乎工作稍好,也許50%的時間看起來乾淨整潔。它也有助於將任何容器元素設置爲您的bg顏色,以便默認的白色bg不會顯示。 – user885663 2012-02-22 03:14:58

0

你可以試試這樣做:

$.when($('body').hide()).then(function() { 
    $(window).resize(function(){ 
     setTimeout(function(){ 
      reshuffle(); 
     }, 100);//100ms 
    }); 
}); 

documentation

+0

感謝您的快速回復,我會給這個嘗試,但我不認爲它會解決問題,因爲.hide實際上踢直到resize事件後(除非。然後可以排隊現有的調整大小),所以(如果即時通訊思考你的代碼如何以正確的方式工作)它將「在手機旋轉後觸發調整大小>檢測到該機構已隱藏>然後等待調整大小>觸發延遲的佈局功能? – user885663 2012-02-22 02:00:56

+0

我理解你的問題的方式是你想在隱藏身體後重新洗牌,而且我相信這樣做(除非我錯了) – 2012-02-22 02:02:46

+0

我現在沒有時間去測試它,但是當我將它付諸實踐時會讓你知道。像它會做的工作,我似乎面臨的問題是,手機心不是足夠快的瀏覽器並駕齊驅的方向和隱藏內容它命中的風景了。 – user885663 2012-02-22 02:21:07