Será overflow:hidden
aplicado ao <body>
trabalho no iPhone Safari? Parece que não. Não consigo criar um invólucro em todo o site para conseguir isso ...
Você conhece a solução?
Exemplo: eu tenho uma página longa e simplesmente quero ocultar o conteúdo que fica embaixo da "dobra" e deve funcionar no iPhone / iPad.
Respostas:
Eu tive um problema semelhante e descobri que me aplicava
overflow: hidden;
a amboshtml
ebody
resolveu meu problema.Para o iOS 9, pode ser necessário usá-lo: (Obrigado chaenu!)
fonte
position: relative
.fonte
Algumas soluções listadas aqui tiveram algumas falhas estranhas ao esticar a rolagem elástica. Para consertar isso eu usei:
Fonte: http://www.teamtownend.com/2013/07/ios-prevent-scrolling-on-body/
fonte
position: relative
), no entanto, a posição de rolagem é perdida após a restauração do estilo padrão (por exemplo, fechamento do menu).// on menu open // save window pos $('body').attr( 'data-pos', $(window).scrollTop() ) ; // ... // on menu close // scroll to saved window pos $( window ).scrollTop( $('body').attr( 'data-pos' ) );
Teve esse problema hoje no iOS 8 e 9 e parece que agora precisamos adicionar altura: 100%;
Então adicione
fonte
Combinar as respostas e comentários aqui e essa pergunta semelhante aqui funcionou para mim.
Então, postando como uma resposta completa.
Veja como você precisa colocar uma div de wrapper no conteúdo do site, apenas dentro da
<body>
tag.Crie a classe wrapper como abaixo.
Eu também tive a idéia desta resposta aqui .
E esta resposta aqui também tem um pouco de reflexão. Algo que provavelmente funcionará igualmente bem em desktops e dispositivos.
fonte
Está trabalhando no navegador Safari.
fonte
Para mim isso:
Não foi o suficiente, não funcionei no iOS no Safari. Eu também tive que adicionar:
Para fazê-lo funcionar bem. Funciona bem agora :)
fonte
Eu trabalhei com
<body>
e<div class="wrapper">
Quando o pop-up é aberto ...
<body>
obtém uma altura de 100% e um estouro: hidden<div class="wrapper">
obtém posição: relativa; estouro: oculto; altura: 100%;Eu uso JS / jQuery para obter a posição de rolagem real da página e armazenar o valor como atributo de dados ao corpo
Então eu rolar para a posição de rolagem no .wrapper DIV (não na janela)
Aqui está a minha solução:
JS / jQuery:
CSS:
Funciona bem em ambos os lados ... desktop e celular (iOS).
Dicas e melhorias são bem-vindas :)
Felicidades!
fonte
adicione isso como padrão ao seu css
toggleClassifique esta classe para cortar a página
quando você desativa esta primeira linha da classe, chama a barra de rolagem de volta
fonte
Sim, isso está relacionado a novas atualizações no safari que estão quebrando seu layout agora se você usar o overflow: hidden para cuidar da limpeza de divs.
fonte
Ele se aplica, mas se aplica apenas a certos elementos dentro do DOM. por exemplo, não funcionará em uma tabela, td ou em outros elementos, mas em uma tag <DIV>.
por exemplo:
Testado apenas no iOS 4.3.
Uma edição menor: é melhor usar o overflow: role para que a rolagem com dois dedos funcione.
fonte
Por que não agrupar o conteúdo que você não deseja exibir em um elemento com uma classe e definir essa classe
display:none
em uma folha de estilo destinada apenas ao iPhone e a outros dispositivos portáteis?fonte
Aqui está o que eu fiz: eu verifico a posição do corpo y, depois fixo o corpo e ajusto a parte superior ao negativo dessa posição. No sentido inverso, torno o corpo estático e defino a rolagem para o valor que registrei antes.
fonte
Simplesmente altere a altura do corpo <300px (a altura da janela de visualização móvel no espaço do terreno é de 300px a 500px)
JS
CSS
fonte