No Chrome para Mac, pode-se "ultrapassar" uma página (por falta de palavra melhor), como mostra a imagem abaixo, para ver "o que está por trás", semelhante ao iPad ou iPhone.
Notei que algumas páginas o têm desativado, como o Gmail e a página "nova guia".
Como posso desativar o "overscrolling"? Existem outras maneiras de controlar a "rolagem excessiva"?
html
css
macos
google-chrome
Randomblue
fonte
fonte
Respostas:
A solução aceita não estava funcionando para mim. A única maneira de fazer funcionar e ainda conseguir rolar é:
fonte
html
hack de estilo quanto para navegadores da web móveis que olham para o estouro total debody
desconsiderar a altura para a qualhtml
foi definido.$(window).scrollTop
?window.scrollY
é sempre0
.No Chrome 63+, Firefox 59+ e Opera 50+, você pode fazer isso em CSS:
Isso desativa o efeito elástico no iOS mostrado na captura de tela da pergunta. No entanto, também desativa puxar para atualizar, efeitos de brilho e encadeamento de rolagem.
No entanto, você pode optar por implementar seu próprio efeito ou funcionalidade na rolagem excessiva. Se você, por exemplo, deseja desfocar a página e adicionar uma animação bacana:
Suporte de navegador
No momento em que este documento foi escrito, o Chrome 63+, Firefox 59+ e Opera 50+ suportam esse recurso. Edge apoiou publicamente enquanto o Safari é desconhecido. Acompanhe o progresso aqui e a compatibilidade do navegador atual na documentação do MDN
Mais Informações
overscroll-behavior
Especificação CSSfonte
Uma maneira de evitar isso é usando o seguinte CSS:
Dessa forma, o corpo nunca transborda e não "pula" ao rolar na parte superior e inferior da página. O contêiner irá rolar perfeitamente seu conteúdo dentro. Isso funciona no Safari e no Chrome.
Editar
Por que o
<div>
elemento- extra como um invólucro pode ser útil:a solução de Florian Feldhaus usa um pouco menos de código e também funciona bem. No entanto, pode haver uma pequena peculiaridade quando se trata de conteúdo que excede a largura da janela de visualização. Neste caso, a barra de rolagem na parte inferior da janela é movida para fora da janela de visualização pela metade e é difícil de reconhecer / alcançar. Isso pode ser evitado
body { margin: 0; }
se for adequado. Na situação em que você não pode adicionar este CSS, o elemento wrapper é útil, pois a barra de rolagem está sempre totalmente visível.Encontre uma captura de tela abaixo:
fonte
Você pode usar este código para remover a
touchmove
ação predefinida:fonte
fonte
position: fixed
é o salvador!Tente assim
fonte
position: absolute
funciona para mim. Eu testei noChrome 50.0.2661.75 (64-bit)
e OSX.fonte
O efeito de salto não pode ser desabilitado, exceto a altura da página da web igual a
window.innerHeight
, você pode deixar seus subelementos rolar.fonte