如何检测位置不足:以通用方式修复?

时间:2010-10-12 05:15:10

标签: css ipad mobile viewport

在iPad等移动设备上,我想禁用只有在支持position:fixed时才有效的功能。有没有办法在不使用用户代理字符串的情况下检测这些设备?原因是我想尽可能避免搜索iPad,iPhone,iPod,Android等。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

也会在Opera Mini上返回误报。

为什么不简单地设置一个位置:固定在某个元素上然后再读回来?如果position:fixed不支持返回值,则不应等于理论上的固定

在Opera Mini上不起作用:您可以将位置设置为“固定”,即使不支持,它也会显示为“已修复”。