Maison > interface Web > tutoriel CSS > Comment rendre les iFrames défilables dans Mobile Safari ?

Comment rendre les iFrames défilables dans Mobile Safari ?

Mary-Kate Olsen
Libérer: 2024-11-18 08:30:02
original
213 Les gens l'ont consulté

How to Make iFrames Scrollable in Mobile Safari?

Affichage des iFrames dans Mobile Safari : un guide complet

L'intégration des iFrames dans les applications Web mobiles peut être un défi, en particulier lorsque l'on vise à restreindre leur taille. Malgré la définition des attributs de hauteur et de largeur, l'iframe peut rester sans contrainte.

Solution :

Entourez l'iframe dans un div pour contrôler ses dimensions. Cependant, cette approche introduit des limitations de défilement au sein de l'iframe.

Pour surmonter ce problème, mettez en œuvre la stratégie suivante :

  • Intégration JavaScript : Placez un script dans l'iframe. contenu.
  • Gestion des événements : Écoutez les événements tactiles dans le iframe.
  • Communication parent : Informez le div parent des événements de défilement via JavaScript.

Exemple de code :

JavaScript pour l'iframe :

setTimeout(function () {
  var startY = 0;
  var startX = 0;
  var b = document.body;
  b.addEventListener('touchstart', function (event) {
    parent.window.scrollTo(0, 1);
    startY = event.targetTouches[0].pageY;
    startX = event.targetTouches[0].pageX;
  });
  b.addEventListener('touchmove', function (event) {
    event.preventDefault();
    var posy = event.targetTouches[0].pageY;
    var h = parent.document.getElementById("scroller");
    var sty = h.scrollTop;

    var posx = event.targetTouches[0].pageX;
    var stx = h.scrollLeft;
    h.scrollTop = sty - (posy - startY);
    h.scrollLeft = stx - (posx - startX);
    startY = posy;
    startX = posx;
  });
}, 1000);
Copier après la connexion

HTML pour le parent div :

<div>
Copier après la connexion

Remarque : Lorsque le contenu de l'iframe n'est pas sous votre contrôle, vous pouvez créer une superposition sur l'iframe et implémenter une fonctionnalité de défilement similaire. Cependant, l'interaction avec le contenu de l'iframe (par exemple, en cliquant sur des liens) sera restreinte.

Considérations supplémentaires :

  • Dans iOS 6 et supérieur, cette solution ne ne fonctionne plus et aucune alternative fiable n'a encore été découverte.
  • Remote Web Inspector (le débogage de Safari outil) nécessite désormais un Mac, ce qui rend le débogage sur l'appareil plus difficile.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal