Как обнаружить отсутствие позиции: исправлено в общем? - PullRequest
4 голосов
/ 12 октября 2010

На мобильных устройствах, таких как iPad, я хотел бы отключить функцию, которая работает, только если поддерживается положение: фиксированный.Есть ли способ обнаружить эти устройства без использования строки агента пользователя?Причина в том, что я хотел бы избежать поиска iPad, iPhone, iPod, Android и т. Д., Если это возможно.

Ответы [ 2 ]

3 голосов
/ 12 октября 2010

Запустите следующую функцию для проверки поддержки 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

0 голосов
/ 24 июня 2013

также возвращает ложное срабатывание в Opera Mini.

Почему бы просто не установить позицию: зафиксировать какой-либо элемент и затем прочитать его обратно? Если позиция: фиксированное, не поддерживаемое возвращаемое значение, не должно быть равно фиксированному в теории

, который не работает в Opera Mini: вы можете установить положение «фиксированный», он будет считаться «фиксированным», даже если он не поддерживается.

...