Rolar sem uma barra de rolagem
Formulário da amostra:
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
* {font:13px arial; color:white;}
body {background:black;}
label {display:inline-block; width:50px;}
input, textarea {margin:0; border:1px solid red; padding:0; background:green;}
textarea {width:300px; height:100px;}
</style>
</head>
<body>
<form action="#">
<div><label for="entry_0">Name</label><input type="text" id="entry_0"></div>
<div><label for="entry_1">Email</label><input type="text" id="entry_1"></div>
<div><label for="entry_2">URL</label><input type="text" id="entry_2"></div>
<div id="parent"><textarea id="entry_3"></textarea></div>
<div><input type="submit" value="Submit"></div>
</form>
</body>
</html>
Gostaria de remover / ocultar a barra de rolagem da área de texto, pois ela não corresponde ao meu estilo de formulário. Eu sei que posso usar plugins jQuery para estilizar a barra de rolagem, mas eles não funcionam de forma confiável em diferentes navegadores / sistemas. Para ocultar a barra de rolagem que posso usartextarea {width:300px; height:100px; overflow:hidden;}
, mas pára completamente o Firefox percorrendo o mouse e o teclado. Eu também tentei a seguinte solução alternativa:
#parent {width:284px; height:102px; overflow:hidden;}
textarea {width:300px; height:100px; overflow-x:hidden; overflow-y:scroll;}
Ele deve funcionar com precisão se eu adicionar algum script para calcular a largura da divisão pai:
var textareaWidth = document.getElementById('entry_3').scrollWidth;
document.getElementById('parent').style.width = textareaWidth + 'px';
Mas, de qualquer forma, a abordagem acima parece não funcionar no Chrome / Safari.
Demonstração:http://jsfiddle.net/RainLover/snTaP/
Abra a demonstração acima no Chrome / Safari >> insira um texto na área de texto >> destaque / selecione uma linha e arraste o mouse para a direita e você verá a barra de rolagem. Ou use as teclas do tecladoPage Up
ePage Down
.
Quaisquer correções ou outras soluções?