Welcome to WebmasterWorld Guest from 23.20.241.155

Forum Moderators: not2easy

Message Too Old, No Replies

Scroll without a scrollbar

     
8:44 pm on Dec 6, 2012 (gmt 0)

5+ Year Member Top Contributors Of The Month



Sample form:

<!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>


I'd like to remove/hide the textarea scrollbar as it doesn't match my form style. I know I can use jQuery plugins to style the scrollbar, but they don't work reliably across different browsers/systems.
To hide the scrollbar I can use textarea {width:300px; height:100px; overflow:hidden;}, but it completely stops Firefox scrolling through mouse and keyboard.
I also tried the following workaround:

#parent {width:284px; height:102px; overflow:hidden;}
textarea {width:300px; height:100px; overflow-x:hidden; overflow-y:scroll;}


It should work accurately if I add some script to calculate the parent division width:

var textareaWidth = document.getElementById('entry_3').scrollWidth;
document.getElementById('parent').style.width = textareaWidth + 'px';


But anyhow the above approach doesn't seem to work in Chrome/Safari:
Demo: [jsfiddle.net ]

Open the above demo in Chrome/Safari >> insert some text into the textarea >> highlight/select a line and drag your mouse to the right and you'll see the scrollbar. Or use the keyboard keys Page Up and Page Down.

Any corrections or other solutions?
11:24 pm on Dec 7, 2012 (gmt 0)

WebmasterWorld Senior Member drdoc is a WebmasterWorld Top Contributor of All Time 10+ Year Member



Any corrections or other solutions?

I know this is not the answer you are looking for, but: Don't mess with people's scroll bars.

Messing with scroll bars and natural behavior results in one of the following problems:
  • Usability issues
  • Browser compatibility issues
  • The design will appear to be an eyesore (study after study shows that people "ignore" the scroll bars due to familiarity, changing their look will therefore have the opposite effect, despite your intentions)

    If the normal scroll bars don't fit your design ... then I am inclined to believe the form elements are way too over-styled ...
  •  

    Featured Threads

    Hot Threads This Week

    Hot Threads This Month