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 admiteposition: fixed
- Opera en Windows devuelve
false
mientras soportaposition: 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;
});
Escribí esta prueba para iOS: http://mnobeta.no/2011/09/test-position-fixed-for-iphone/
Es un poco desordenado, pero parece funcionar. Android sigue siendo un problema debido a su posición "falsa" position:fixed
.