O comportamento padrão do WebKit / Blink (Safari / Chrome) no MacOS desde a versão 10.7 (Mac OS X Lion) é ocultar barras de rolagem dos usuários do trackpad quando eles não estão em uso. Isso pode ser confuso ; a barra de rolagem geralmente é a única dica visual de que um elemento pode ser rolado.
Exemplo ( jsfiddle )
HTML<div class="frame">
Foo<br />
Bar<br />
Baz<br />
Help I'm trapped in an HTML factory!
</div>
CSS
.frame {
overflow-y: auto;
border: 1px solid black;
height: 3em;
width: 10em;
line-height: 1em;
}
Captura de tela do WebKit (Chrome)
Captura de tela do Presto (Opera)
Como forçar uma barra de rolagem a ser sempre exibida em um elemento rolável no WebKit?
Respostas:
A aparência das barras de rolagem pode ser controlada com os
-webkit-scrollbar
pseudoelementos do WebKit [ blog ] . Você pode desativar a aparência e o comportamento padrão configurando-webkit-appearance
[ docs ] paranone
.Como você está removendo o estilo padrão, também precisará especificar o estilo ou a barra de rolagem nunca será exibida. O CSS a seguir recria a aparência das barras de rolagem ocultas:
Exemplo ( jsfiddle )
CSS Captura de tela do WebKit (Chrome)fonte
.frame::-webkit-scrollbar-track { background-color: #FFF; border-radius: 8px; }
Para um aplicativo Web de uma página em que adiciono seções roláveis dinamicamente, aciono as barras de rolagem do OSX rolando programaticamente um pixel para baixo e para trás:
Isso aciona a sugestão visual entrando e saindo.
fonte
Aqui está um código mais curto que reativa as barras de rolagem em todo o site. Não tenho certeza se é muito diferente da resposta atual mais popular, mas aqui está:
Encontrado neste link: http://simurai.com/blog/2011/07/26/webkit-scrollbar
fonte
As barras de rolagem do navegador não funcionam no iPhone / iPad. No trabalho, estamos usando barras de rolagem JavaScript personalizadas, como jScrollPane, para fornecer uma interface consistente entre navegadores: http://jscrollpane.kelvinluck.com/
Funciona muito bem para mim - você pode criar barras de rolagem personalizadas realmente bonitas que se ajustam ao design do seu site.
fonte
Outra boa maneira de lidar com as barras de rolagem ocultas do Lion é exibir um prompt para rolar para baixo. Ele não funciona com pequenas áreas de rolagem, como campos de texto, mas também com grandes áreas de rolagem, mantendo o estilo geral do site. Um site que faz isso é http://versusio.com , verifique esta página de exemplo e aguarde 1,5 segundos para ver o prompt:
http://versusio.com/en/samsung-galaxy-nexus-32gb-vs-apple-iphone-4s-64gb
A implementação não é difícil, mas você deve tomar cuidado para não exibir o prompt quando o usuário já tiver rolado.
Você precisa do jQuery + Underscore e
$(window).scroll
para verificar se o usuário já rolou sozinho,_.delay()
para acionar um atraso antes de exibir o prompt - o prompt não deve ser invasivo$('#prompt_div').fadeIn('slow')
desaparecer no seu prompt e, claro,$('#prompt_div').fadeOut('slow')
desaparecer quando o usuário rolou depois que viu o promptAlém disso, você pode vincular os eventos do Google Analytics para acompanhar o comportamento de rolagem do usuário.
fonte