68 votes

Positionnement fixe dans Mobile Safari

Est-il possible de positionner un élément de manière fixe par rapport à la fenêtre d'affichage dans Mobile Safari ? Comme beaucoup l'ont noté, position: fixed ne fonctionne pas, mais Gmail vient de proposer une solution qui correspond presque à ce que je veux - voir la barre de menu flottante dans la vue des messages.

Obtenir des événements de défilement en temps réel en JavaScript serait également une solution raisonnable.

74voto

Abhijit Kalamkar Points 690

Cette division à position fixe peut être réalisée en seulement 2 lignes de code qui déplacent la division en cas de défilement vers le bas de la page.

window.onscroll = function() {
  document.getElementById('fixedDiv').style.top =
     (window.pageYOffset + window.innerHeight - 25) + 'px';
};

35voto

vava Points 11364

10voto

JoshNaro Points 1306

Ver La solution de Google à ce problème . Vous devez essentiellement faire défiler le contenu vous-même en utilisant JavaScript. Sencha Touch fournit également une bibliothèque pour obtenir ce comportement d'une manière très performante.

6voto

Raphael Petegrosso Points 2009

Ça a marché pour moi :

function changeFooterPosition() {   
  $('.footer-menu').css('top', window.innerHeight + window.scrollY - 44 + "px");
}

$(document).bind('scroll', function() {
  changeFooterPosition();
});

(44 est la hauteur de mon bar)

Bien que la barre ne bouge qu'à la fin du défilement...

5voto

iDevGeek Points 81

Ceci peut vous intéresser. C'est la page d'assistance d'Apple Dev.
http://developer.apple.com/library/ios/#technotes/tn2010/tn2262/

Lire le point " 4. Modifier le code qui s'appuie sur le positionnement fixe CSS "et vous découvrirez qu'il y a une très bonne raison pour laquelle Apple a pris la décision consciente de traiter la position fixe comme statique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X