Maison > interface Web > tutoriel CSS > Comment empêcher les éléments fixes de sauter dans Mobile Safari avec des claviers virtuels ?

Comment empêcher les éléments fixes de sauter dans Mobile Safari avec des claviers virtuels ?

Patricia Arquette
Libérer: 2024-10-27 07:41:31
original
980 Les gens l'ont consulté

How to Prevent Fixed Elements from Jumping in Mobile Safari with Virtual Keyboards?

Éléments fixes bogués dans Mobile Safari avec clavier virtuel

Gérer les éléments fixes dans Mobile Safari peut être un défi, surtout lorsqu'un clavier virtuel est ouvert. Un problème courant survient lorsqu'un élément de navigation fixe saute de manière inattendue lorsqu'un champ de saisie dans la navigation obtient le focus.

Cause et solution

Ce comportement est probablement dû à un problème connu. problème dans Mobile Safari. La solution proposée consiste à modifier dynamiquement le positionnement des éléments fixes.

  • Lorsqu'un élément d'entrée obtient le focus et que le clavier virtuel apparaît, changez la propriété de position des éléments fixes en absolue.
  • Restaurez le positionnement fixe d'origine une fois que l'élément d'entrée perd le focus et que le clavier est masqué.

Extrait de code

L'extrait de code suivant illustre cette solution :

.header { 
    position: fixed; 
} 
.footer { 
    position: fixed; 
} 
.fixfixed .header, 
.fixfixed .footer { 
    position: absolute; 
} 
Copier après la connexion
if ('ontouchstart' in window) {
    /* cache dom references */ 
    var $body = $('body'); 

    /* bind events */
    $(document)
    .on('focus', 'input', function() {
        $body.addClass('fixfixed');
    })
    .on('blur', 'input', function() {
        $body.removeClass('fixfixed');
    });
}
Copier après la connexion

En ajoutant ce code, l'élément de navigation restera fixe en bas de la page même lorsque l'utilisateur interagit avec le champ de saisie et que le clavier virtuel apparaît.

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