2012-05-12 45 views
4

我設置視口標籤480像素所以在iPhone(肖像模式)網站的真實尺寸是:iPhone(jQuery)的高度錯誤?

  1. 480x534px時,最上面一欄是可見
  2. 480x594px時,最上面一欄是 隱藏

然而, ,jQuery(window).height()window.innerHeightjQuery(window).InnerHeight()總是返回480x534px,並且在嘗試將height: 100%; width: 100%;容器放置在當前內容(彈出窗口)的頂部時,會在網站底部創建60px的間隔。

這被報告爲jQuery bug(和iPhone bug),但是有沒有解決方法?

+0

檢查我的回答類似的問題,可能會有所幫助http://stackoverflow.com/questions/8205812/jquery-js-ios-4-and-document-height-problems –

+0

@DmitrySemenov謝謝!一年前我找到了一種方法來處理這個問題,並且我將這個錯誤報告給了jQuery。他們說這應該在jQuery 1.8中解決(現在我們有jQuery 1.9,所以它可能已經修復了)。 iOS升級後(最近6.0)也有重大變化,所以我敢打賭,我們必須定期關注類似的事情,並更新腳本/庫/插件:) – Atadj

回答

1

當在iPhone上加載頁面時,出現頂部欄。
這就是爲什麼$(window).height()將返回較小窗口的實際大小。
頂杆向上滑動一段時間後窗口大小發生變化。
所以你可以添加一個常數到(window).height()代表頂部欄大小或hook up$(window).resize()事件來檢索頂部面板消失後的實際大小。

+0

我在這之前和之後檢索高度相同(錯誤)value:window.addEventListener(「load」,function(){ window.scrollTo(0,1); }); – Atadj

1

請務必使用外部高度而不是內部高度。不幸的是,jQuery的$(window).outerHeight()並不適用於窗口(它返回一樣$(window).height())和文件元素,所以你必須這樣做,在普通的JavaScript,如下:

(typeof window.outerHeight != 'undefined')?Math.max(window.outerHeight, $(window).height()):$(window).height()