tag solucionar script descargar como attribute javascript css html5 css-position modernizr

solucionar - void(0) javascript href



PosiciĆ³n fija modernizadora prueba incompleta (2)

Descubrí que necesitas insertar algunos hacks para obtener una prueba funcional de PositionFixed. Por ejemplo, he insertado un hack en mi prueba que devuelve true para dispositivos iOS ejecutando v.5 o superior:

/*iPhone/iPad Hack*/ if(navigator.userAgent.match(/iPad|iPhone/i) !== null){ /*Check if device runs iOS 5 or higher*/ isSupported = navigator.userAgent.match(/[5-9]_[0-9]/) !== null; }

No estoy seguro de qué tan "limpio" es este código, pero funciona para mí.

Modernizr es genial, pero la prueba de ejemplo para la position: fixed es bastante incompleta:

  • iOS 4 y versiones inferiores devuelven true mientras no admite position: fixed
  • Opera en Windows devuelve false mientras soporta position: fixed

Encontré otra prueba basada en la prueba Modernizr pero con la detección de iOS agregada: https://gist.github.com/855078/109ded4b4dab65048a1e7b4f4bd94c93cebb26b8 . No está realmente preparado para el futuro, ya que el próximo iOS 5 admite la position: fixed .

¿Pueden ayudarme a encontrar una manera de probar la posición fija en iOS sin rastrear el navegador?

// Test for position:fixed support Modernizr.addTest(''positionfixed'', function () { var test = document.createElement(''div''), control = test.cloneNode(false), fake = false, root = document.body || (function () { fake = true; return document.documentElement.appendChild(document.createElement(''body'')); }()); var oldCssText = root.style.cssText; root.style.cssText = ''padding:0;margin:0''; test.style.cssText = ''position:fixed;top:42px''; root.appendChild(test); root.appendChild(control); var ret = test.offsetTop !== control.offsetTop; root.removeChild(test); root.removeChild(control); root.style.cssText = oldCssText; if (fake) { document.documentElement.removeChild(root); } return ret; });