.modal-open não travando o scroll no iOS / fixed faz o modal fazer um jump pro topo do site #991
Replies: 10 comments
-
Em resumo o Ele realmente vai dar scroll no seu elemento fixed de forma estranha. Tenta evitar usar fixed, se possivel, usa absolute. E se possivel também, remove o overflow do body, html e cria essas pequenas áreas caso precise de outros elementos fixos |
Beta Was this translation helpful? Give feedback.
-
Por exemplo |
Beta Was this translation helpful? Give feedback.
-
Cara, muito obrigado @WandersonAlves !! Vou tentar implementar conforme tua dica, pesquisando sobre inclusive. Eu sou iniciante na área, então seria excelente saber a solução de um problema tão simples quanto este, de conseguir travar o scroll ao abrir um modal no iOS, falando assim parece ser tão simples, não? É foda hahahaaha |
Beta Was this translation helpful? Give feedback.
-
Tente usar |
Beta Was this translation helpful? Give feedback.
-
Obrigado @lfeh !! Senhores, aparentemente meu problema está em colocar:
Assim eu faço o overflow vertical do Safari travar e resolvo meu problema, se eu coloco essa regra só no body, ele não trava. Eu até encontrei outras pessoas relatando problema parecido, como: aqui e aqui, mas ainda não tive sucesso em corrigir o problema. Pelo que compreendi, estão falando para não usar o Vou tentar... Se alguém mais tiver alguma ideia de como me ajudar. Obrigado! |
Beta Was this translation helpful? Give feedback.
-
@igorthurow Cara, eu tava com esse mesmo problema, aparentemente essa solução do
Funcionou para mim. |
Beta Was this translation helpful? Give feedback.
-
Boa! O meu ainda tá com problema, deve estar conflitante com alguma coisa, preciso corrigir ainda. Que saco haha |
Beta Was this translation helpful? Give feedback.
-
Minha solução temporária foi pegar a altura do scroll quando o modal for aberto e atualizar o da página com esse valor, quando o modal for fechado, tenho conhecimento que não é tão elegante mas é enquanto acho a solução. |
Beta Was this translation helpful? Give feedback.
-
Eu uso o Body Scroll Lock, salva vidas: https://github.com/willmcpo/body-scroll-lock |
Beta Was this translation helpful? Give feedback.
-
Eita @kvnol Muito bom conhecer esse cara. Valeu por compartilhar conosco |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Fala galera!
Eu tô usando a class .modal-open do Bootstrap 4 {overflow:hidden}; pra travar o overflow da página do meu site, tanto quando abre o modal quanto quando abre o menu.
O problema é no iOS (acredito que somente com o Safari), aparentemente o overflow:hidden não funciona corretamente no iOS, e então pesquisando eu consegui resolver em partes:
Defini modal-open para {position: fixed; overflow: hidden; width: 100%;}, e defini para ser adicionada ao body e ao HTML quando eu chamar o menu ou o modal, tanto html quanto o body já estão default com height 100%.
Funciona! Aparentemente travou o scroll no iOS, ou seja, funcionou para a finalidade que eu estava buscando, o site não scrolla mais enquanto o menu ou o modal estiverem abertos.
Só que gerou outro problema: Quando eu abro o modal, ou o menu e a class .modal-open{position: fixed} é aplicada no body e no html, o site faz um jump pro topo do site. Tanto mobile quanto desktop.
Foi a única maneira que encontrei de travar o scroll no iOS mas me resultou no problema de pular pro topo em todas outras plataformas e navegadores.
E o pior: Eu não tenho device iOS pra debugar, alguém pode me ajudar?
Além disso aparentemente a imagem do BG também tá bugada no iOS, mas isso eu ainda não tentei resolver, vou ver no próximo capítulo :)
Site: http://www.igorthurow.me (no momento apresentando o erro de pular para o topo ao clicar no modal ou no menu, para que possa ser visualizado o problema e facilite a correção
Meu menu JS:
Obrigado!!! Espero que tenham entendido a questão.
Beta Was this translation helpful? Give feedback.
All reactions