Connecting Tech Pros Worldwide Forums | Help | Site Map

scroll buttons for div

Jonathan
Guest
 
Posts: n/a
#1: Jul 23 '05
I'm trying to build a scrollable div with "up" and "down" buttons to
replicate the action of a scroll bar. The reason I'm not just using
"overflow:auto" is because I want to position the scroll buttons on the
LEFT side of the box.

Don't ask why, I'm not the client ;)

Anyway, I've managed to get this working on some browsers by modifying
the scrollTop property of the div object, but it seems that this is
actually supposed to be read-only, and is inconsistent in any event.

Any ideas for how to do this cleanly?

-J



Paul R
Guest
 
Posts: n/a
#2: Jul 23 '05

re: scroll buttons for div


Jonathan wrote:[color=blue]
> I'm trying to build a scrollable div with "up" and "down" buttons to
> replicate the action of a scroll bar. The reason I'm not just using
> "overflow:auto" is because I want to position the scroll buttons on the
> LEFT side of the box.
>
> Don't ask why, I'm not the client ;)
>
> Anyway, I've managed to get this working on some browsers by modifying
> the scrollTop property of the div object, but it seems that this is
> actually supposed to be read-only, and is inconsistent in any event.
>
> Any ideas for how to do this cleanly?
>
> -J
>
>[/color]
If you put the contents inside two div tags you can use CSS to clip the
outer div and "scroll" the inner div by scripting its CSS "top" value, thus:

<html><head><style>
#contents{ position: relative; top: 0; left: 0; width: 100px; height: auto;}
#scrollable{ overflow: hidden; width: 100px; height: 100px; border: 1px
solid black;}
</style>
<script>
var t = 0;

function up()
{
t += 10;

with(document.getElementById("contents"))
{
if (t > 0)
t = 0;

if(style)
style.top = t + "px";
else
setAttribute("style", "top: " + t + "px");
}
}

function down()
{
t -= 10;

with(document.getElementById("contents"))
{
if(t < -clientHeight)
t = -clientHeight;

if(style)
style.top = t + "px";
else
setAttribute("style", "top: " + t + "px");
}
}
</script></head>
<body><table><tr><td><a href="javascript:void(0)"
onclick="up()">up</a></td><td rowspan="2"><div id="scrollable"><div
id="contents">scrolling content scrolling content scrolling content
scrolling content scrolling content scrolling content scrolling content
scrolling content scrolling content scrolling content scrolling content
</div></div></td></tr><tr><td><a href="javascript:void(0)"
onclick="down()">down</a></td></tr></table>
</body></html>
Closed Thread


Similar JavaScript / Ajax / DHTML bytes