Estou construindo um portal da web que deve ser funcional e bonito em várias plataformas. Uma das plataformas é o IOS Safari, e foi nesse caso que encontrei um problema. No meu código, alinhar dois botões flutuantes na parte inferior de uma div com uma largura e altura de 100%. Tudo funciona bem e meus botões são exibidos exatamente como deveriam na parte inferior da página. No entanto, quando clico nos botões, a visualização compacta do safari móvel muda para a visualização completa e meus botões ficam ocultos atrás da barra de navegação inferior!
É um comportamento normal do safari mobile exibir o menu expandido quando o usuário toca nos 10% inferiores da tela? Como posso evitar isso?
Neste gif, você pode ver o problema no simulador IOS:
Como você pode ver, o problema ocorre apenas quando um botão está nos 10% inferiores da visualização. Este é apenas um botão normal. Meu código foi verificado três vezes por vários desenvolvedores e não possui erros.
fonte
Respostas:
Esse é um comportamento normal no Mobile Safari. Tocar na parte inferior exibe as várias opções do navegador e rola a página da Web para cima de acordo. A funcionalidade da página da Web permanece a mesma, para que o usuário ainda possa tocar no botão depois de rolar para acessar qualquer funcionalidade que tenha.
fonte
Eu acho que posso ter encontrado uma resposta. Configurando seu conteúdo para ter os seguintes estilos:
height: 100%
(permite que o conteúdo preencha a janela de exibição e vá além da parte inferior)overflow-y: scroll
(permite rolar abaixo da janela de visualização; o valor padrão évisible
)-webkit-overflow-scrolling: touch
(para suavizar qualquer comportamento de rolagem)parece forçar o menu do iOS no Safari a sempre aparecer. Dessa forma, os cliques no botão realmente funcionarão em vez de abrir o menu Safari. Espero que isto ajude!
fonte
overflow-y: scroll
em sua área de conteúdo principal. Esse hack tem efeitos colaterais que afetam todos os elementos filhos. Para colocá-lo mais corretamente, essas propriedades css afetam diretamente todos os elementos filhos e forçar a exibição do menu do safari é na verdade o efeito colateral.height: 100%
. Para uma empresa que ganha muito dinheiro com dispositivos móveis, sua experiência na Web para dispositivos móveis é horrível.