iPhone Mobile Safari parece que falta element.getBoundingClientRect. ¿Cuál es el método equivalente en iPhone Mobile Safari? Este método existe en el iPad.¿Cuál es el equivalente a getBoundingClientRect en iPhone Mobile Safari 3?
Respuesta
Editar 1: Este código (webkitConvertPointFromNodeToPage) solo se requiere para teléfonos muy viejos y desactualizados ... ver these comments.
EDIT 2: No recomendaría que use este código ... Recuerdo haberlo cambiado para solucionar algunos problemas con IE10 con el zoom táctil. Trataré de recordar actualizar el código con la solución.
fue: Creo que los siguientes trabajos sobre IE6 +, FF3 +, Safari 2+ (Escritorio & móvil), Cromo (Escritorio & Android), Opera:
function offset(el) {
var convertPoint = window.webkitConvertPointFromNodeToPage;
if ('getBoundingClientRect' in el) {
var
boundingRect = el.getBoundingClientRect(),
body = document.body || document.getElementsByTagName("body")[0],
clientTop = document.documentElement.clientTop || body.clientTop || 0,
clientLeft = document.documentElement.clientLeft || body.clientLeft || 0,
scrollTop = (window.pageYOffset || document.documentElement.scrollTop || body.scrollTop),
scrollLeft = (window.pageXOffset || document.documentElement.scrollLeft || body.scrollLeft);
return {
top: boundingRect.top + scrollTop - clientTop,
left: boundingRect.left + scrollLeft - clientLeft
}
} else if (convertPoint) {
var
zeroPoint = new WebKitPoint(0, 0),
point = convertPoint(el, zeroPoint),
scale = convertPoint(document.getElementById('scalingEl'), zeroPoint);
return {
top: Math.round(point.y * -200/scale.y),
left: Math.round(point.x * -200/scale.x)
}
}
}
donde el siguiente es un niño del cuerpo :
<div id="scalingEl" style="position:absolute;top:-200px;left:-200px;visibility:hidden;"></div>
El método necesita una comprobación de errores (por ejemplo, el elemento debe estar en el documento). La escala hace que funcione cuando se amplía la página, pero puede no ser necesario (lo necesité al probar webkitConvertPointFromNodeToPage en Windows Safari).
Para aquellos que buscan la ele.getBoundingClientRect(). Método ancho en iOS 3, puede utilizar ele.offsetWidth
if("getBoundingClientRect" in this.container) {
this.width = this.container.getBoundingClientRect().width ;
}else {
this.width = this.container.offsetWidth; //http://help.dottoro.com/ljvmcrrn.php
}
- 1. Mobile Safari en iPhone/iPod CSS hack
- 2. Mobile Safari en iPhone 5: ¿Tamaño de área visible?
- 3. Editor de texto enriquecido en Mobile Safari
- 4. Cómo acceder a la cámara del iPhone desde Mobile Safari
- 5. OnSubmit con Mobile Safari
- 6. Safari Mobile pantalla completa
- 7. Mobile Safari Problema SVG
- 8. ¿Hay un equivalente a getBoundingClientRect() para los nodos de texto?
- 9. Eliminar la sombra interior de textarea en Mobile Safari (iPhone)
- 10. iPhone Mobile Safari, ¿Cuántas conexiones http paralelas máximas?
- 11. ¿Cuál es el equivalente a + = en Matlab?
- 12. Incrustar video HTML5 para Mobile Safari en un iPhone 3GS frente a un iPhone 4
- 13. Mobile Safari botón Atrás
- 14. ¿Es posible obtener el iOS 6 advertisingIdentifier en Mobile Safari?
- 15. zoom automático en el safari de iphone
- 16. Implementar UIPickerview en Mobile Safari a través de HTML
- 17. Detectar el movimiento a una nueva pestaña en Mobile Safari
- 18. GWT y video HTML5 en Mobile Safari
- 19. ¿Diferencias de Javascript entre Mobile Safari y Safari en Mac?
- 20. ¿Es posible permitir Cross Site Scripting (XSS) en Mobile safari?
- 21. ¿Cómo prevenir el retraso de desplazamiento en Safari Mobile (iPad)?
- 22. onclick blocks copy + paste en Mobile Safari?
- 23. Modificar ubicación div en Zoom Mobile Safari
- 24. ¿Cuál es el equivalente Response.Redirect en Silverlight?
- 25. setTimeout no funciona en safari mobile
- 26. ¿Cuál es el equivalente a "OnIdle" en WPF
- 27. ¿Cuál es el JSP equivalente a json_encode (en PHP)?
- 28. ¿Cuál es el equivalente a 'ir' en MySQL?
- 29. ¿Cuál es el equivalente exacto a LD_PRELOAD en OSX?
- 30. ¿Cuál es el equivalente a System.nanoTime() en .NET?
un cheque puede ser más simple 'si (div.getBoundingClientRect) {} else {} ' –