2010-10-12 18 views
4

在像iPad這樣的移動設備上,我想禁用只有在position:fixed被支持的情況下才能使用的功能。有沒有辦法在不使用用戶代理字符串的情況下檢測這些設備?原因是我想避免在可能的情況下搜索iPad,iPhone,iPod,Android等。如何檢測缺位:以通用方式修復?

回答

3

運行以下函數來測試position:fixed支持。

function() { 
    var isSupported = null; 
    if (document.createElement) { 
     var el = document.createElement("div"); 
     if (el && el.style) { 
      el.style.position = "fixed"; 
      el.style.top = "10px"; 
      var root = document.body; 
      if (root && root.appendChild && root.removeChild) { 
       root.appendChild(el); 
       isSupported = el.offsetTop === 10; 
       root.removeChild(el); 
      } 
     } 
    } 
    return isSupported; 
}

http://kangax.github.com/cft/#IS_POSITION_FIXED_SUPPORTED

+2

顯然這會返回移動Safari中的誤報(http://stackoverflow.com/questions/973875/jquery-check-if-browser-support-position-fixed)。 – 2010-10-12 05:43:47

+0

爲什麼不簡單設置一個位置:固定在某個元素上,然後再讀回來?如果position:fixed不支持返回值,理論上不應該等於fixed ... – jayarjo 2013-04-16 08:11:08

0

也返回上的Opera Mini假陽性。

爲什麼不簡單地設置一個位置:固定在某個元素上然後再讀回來?如果位置:固定不支持返回值,理論上不應該等於

不適用於Opera Mini:您可以將位置設置爲「固定」,即使它是「固定」不支持。

相關問題