iPhone Mobile Safari semble manquer element.getBoundingClientRect. Quelle est la méthode équivalente sur iPhone Mobile Safari? Cette méthode existe sur l'iPad.Quel est l'équivalent de getBoundingClientRect sur iPhone Mobile Safari 3?
Répondre
Édition 1: Ce code (webkitConvertPointFromNodeToPage) n'est requis que pour les téléphones très anciens et obsolètes ... voir these comments.
EDIT 2: Je ne vous recommande pas d'utiliser ce code ... Je me souviens de l'avoir changé pour faire face à un problème avec IE10 avec le zoom tactile. Je vais essayer de me souvenir de mettre à jour le code avec le correctif.
était la suivante: Je pense que les travaux suivants sur IE6 +, FF3 +, Safari 2+ (bureau & Mobile), Chrome (Bureau & 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)
}
}
}
où ce qui suit est un enfant du corps :
<div id="scalingEl" style="position:absolute;top:-200px;left:-200px;visibility:hidden;"></div>
La méthode nécessite une vérification d'erreur (par exemple, l'élément doit figurer dans le document). Scale le fait fonctionner lorsque la page est agrandie, mais peut ne pas être nécessaire (j'en ai eu besoin lors du test de webkitConvertPointFromNodeToPage dans Windows Safari).
Pour ceux qui cherchent la ele.getBoundingClientRect(). Méthode largeur sur iOS 3, vous pouvez utiliser 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. iPhone de Safari Mobile: Caractères spéciaux
- 2. Sélection de texte dans Safari mobile sur iPhone
- 3. iPhone, Mobile Safari, YouTube ... rester sur la page
- 4. Lire UDID depuis Iphone avec javascript sur mobile safari
- 5. jQuery faire défiler sur Mobile Safari
- 6. Accès au système de fichiers iPhone Mobile Safari
- 7. Comment détecter quand Mobile Safari est fermé?
- 8. Mobile Safari/Webkit sur l'événement Focus fenêtre
- 9. Puis-je empêcher le safari mobile de faire pivoter l'écran automatiquement sur ipod touch ou iphone?
- 10. jQuery trigger cliquez sur mobile Safari (iPad)
- 11. iPhone Safari Vs PC Safari
- 12. iphone mobile web + supprimer les barres d'interface safari
- 13. Impossible de surligner/copier du texte dans iPhone Safari sur le site mobile
- 14. Problèmes d'API de géolocalisation de Safari mobile
- 15. Toggling La fonction jQuery ne fonctionne pas sur Safari Mobile
- 16. Mobile Safari - Afficher la console?
- 17. Puis-je empêcher le safari mobile de faire pivoter l'écran automatiquement sur ipod touch ou iphone?
- 18. Liste des différences connues entre "Safari sur iPad" et "Safari sur iPhone"
- 19. Problème d'écriture dans une base de données sur iphone dans un safari mobile
- 20. Force le rendu de la page entière sur Mobile Safari?
- 21. Safari Mobile montre pas sur les barres de défilement textarea
- 22. Comment puis-je savoir quel "bouton" est exploité dans Safari mobile?
- 23. jQtouch webapp fonctionne bien sur mac Safari mais ne fonctionnera pas sur iPhone Safari
- 24. Manifeste de cache HTML5 dans Safari mobile
- 25. getBoundingClientRect IHTMLElement2 - Extension IE
- 26. Meilleur navigateur pour les tests sous Safari Mobile sous Linux?
- 27. Zone de texte Safari mobile Arrière-plan
- 28. Modification de la source d'événement tactile sur Mobile Safari
- 29. Invite de remplissage automatique de Safari mobile
- 30. Mobile Safari Youtube ouvert via javascript
un contrôle plus simple peut être « si (div.getBoundingClientRect) {} else {} ' –