Absolutely Positioned Scrollable Area

liunx

Guest
I am trying to implement a DHTML scrollable area into my site and have found one on <!-- w --><a class="postlink" href="http://www.z3roadster.net/dreamweaver">www.z3roadster.net/dreamweaver</a><!-- w -->. The JavaScript is within a file written in HTML. It works fine when I test it in IE6 and Mozilla 1.3. When I try and copy it into my XHTML script, it results in the scrollable area not working in Mozilla, yet it still works fine in IE6. Can anyone help me? I can't see what I need to alter in order to make it work in Mozilla. Thanks in advance. The script is as follows: <br />
<br />
<head> <br />
<style type="text/css"> <br />
#divUpControl{position:absolute; width:400; left:40; top:200; z-index:1;} <br />
#divDownControl{position:absolute; width:400; left:40; top:490; z-index:1;} <br />
#divContainer{position:absolute; width:500; height:281; overflow:hidden; top:200; left:40; clip:rect(0,400,281,0); visibility:hidden} <br />
#divContent{position:absolute; top60; left:0;font-size:11px;font-family:Verdana;line-height:18px;text-align:justify;} <br />
</style> <br />
<script language="JavaScript"> <br />
<br />
function MM_preloadImages() { //v3.0 <br />
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); <br />
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) <br />
if (a.indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=http://www.webdeveloper.com/forum/archive/index.php/a;}} <br />
} <br />
<br />
function MM_swapImgRestore() { //v3.0 <br />
var i,x,a=document.MM_sr; <br />
for(i=0;a&&i<a.length&&(x=a)&&x.oSrc;i++) { <br />
x.src=http://www.webdeveloper.com/forum/archive/index.php/x.oSrc; <br />
} <br />
CeaseScroll(); <br />
} <br />
<br />
function MM_findObj(n, d) { //v4.01 <br />
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { <br />
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} <br />
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n]; <br />
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document); <br />
if(!x && d.getElementById) x=d.getElementById(n); return x; <br />
} <br />
<br />
function MM_swapImage() { //v3.0 <br />
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; <br />
for(i=0;i<(a.length-2);i+=3) <br />
if ((x=MM_findObj(a))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=http://www.webdeveloper.com/forum/archive/index.php/x.src; x.src=a[i+2];} <br />
if (a[0]=='Image2') PerformScroll(7); <br />
else PerformScroll(-7); <br />
} <br />
<br />
<br />
// begin absolutely positioned scrollable area object scripts <br />
/* <br />
Extension developed by David G. Miles (<!-- w --><a class="postlink" href="http://www.z3roadster.net/dreamweaver">www.z3roadster.net/dreamweaver</a><!-- w -->) <br />
Original Scrollable Area code developed by Thomas Brattli <br />
To add more shock to your site, visit <!-- w --><a class="postlink" href="http://www.DHTML">www.DHTML</a><!-- w --> Shock.com <br />
*/ <br />
function lib_bwcheck(){ //Browsercheck (needed) <br />
this.ver=navigator.appVersion <br />
this.agent=navigator.userAgent <br />
this.dom=document.getElementById?1:0 <br />
this.opera5=(navigator.userAgent.indexOf("Opera")>-1 && document.getElementById)?1:0 <br />
this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; <br />
this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0; <br />
this.ie4=(document.all && !this.dom && !this.opera5)?1:0; <br />
this.ie=this.ie4||this.ie5||this.ie6 <br />
this.mac=this.agent.indexOf("Mac")>-1 <br />
this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; <br />
this.ns4=(document.layers && !this.dom)?1:0; <br />
this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5) <br />
return this <br />
} <br />
var bw=lib_bwcheck() <br />
<br />
var speed=50 <br />
<br />
var loop, timer <br />
<br />
function ConstructObject(obj,nest){ <br />
nest=(!nest) ? '':'document.'+nest+'.' <br />
this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0; <br />
this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0; <br />
this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight <br />
this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight <br />
this.up=MoveAreaUp;this.down=MoveAreaDown; <br />
this.MoveArea=MoveArea; this.x; this.y; <br />
this.obj = obj + "Object" <br />
eval(this.obj + "=this") <br />
return this <br />
} <br />
function MoveArea(x,y){ <br />
this.x=x;this.y=y <br />
this.css.left=this.x <br />
this.css.top=this.y <br />
} <br />
<br />
function MoveAreaDown(move){ <br />
if(this.y>-this.scrollHeight+objContainer.clipHeight){ <br />
divUpArrow.css.visibility='visible' <br />
this.MoveArea(0,this.y-move) <br />
if(loop) setTimeout(this.obj+".down("+move+")",speed) <br />
} <br />
else divDownArrow.css.visibility='hidden' <br />
} <br />
function MoveAreaUp(move){ <br />
if(this.y<0){ <br />
divDownArrow.css.visibility='visible' <br />
this.MoveArea(0,this.y-move) <br />
if(loop) setTimeout(this.obj+".up("+move+")",speed) <br />
} <br />
else divUpArrow.css.visibility='hidden' <br />
} <br />
<br />
function PerformScroll(speed){ <br />
if(initialised){ <br />
loop=true; <br />
if(speed>0) objScroller.down(speed) <br />
else objScroller.up(speed) <br />
} <br />
} <br />
<br />
function CeaseScroll(){ <br />
loop=false <br />
if(timer) clearTimeout(timer) <br />
} <br />
var initialised; <br />
function InitialiseScrollableArea(){ <br />
objContainer=new ConstructObject('divContainer') <br />
objScroller=new ConstructObject('divContent','divContainer') <br />
objScroller.MoveArea(0,0) <br />
objContainer.css.visibility='visible' <br />
initialised=true; <br />
divUpArrow=new ConstructObject('divUpControl') <br />
divDownArrow=new ConstructObject('divDownControl') <br />
divUpArrow.css.visibility='hidden' <br />
} <br />
// end absolutely positioned scrollable area object scripts <br />
<br />
window.focus(); <br />
<br />
</script> <br />
</head> <br />
<br />
<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0" bgcolor="#FFFFFF" onLoad="InitialiseScrollableArea()"> <br />
<br />
<!-- begin absolutely positioned scrollable area object--> <br />
<br />
<div id="divUpControl" align="center" style="visibility:hidden;"> <a href=http://www.webdeveloper.com/forum/archive/index.php/"java script:;" onMouseOver="MM_swapImage('Image1','','images/scrollup_r.gif',1)" onMouseOut="MM_swapImgRestore()"><img src=http://www.webdeveloper.com/forum/archive/index.php/"images/scrollup.gif" width="400" height="11" alt="" border="0" name="Image1"></a></div> <br />
<div id="divDownControl" align="center"> <a href=http://www.webdeveloper.com/forum/archive/index.php/"java script:;" onMouseOver="MM_swapImage('Image2','','images/scrolldown_r.gif',1)" onMouseOut="MM_swapImgRestore()"><img src=http://www.webdeveloper.com/forum/archive/index.php/"images/scrolldown.gif" width="400" height="11" alt="" border="0" name="Image2"></a></div> <br />
<div id="divContainer"> <br />
<div id="divContent"> <br />
<br />
Content here! <br />
<br />
</div> <br />
</div> <br />
<br />
<!-- end absolutely positioned scrollable area object --> <br />
<br />
</body> <br />
</html><!--content-->Easier way.<br />
<div style="height:400px; width:400px; overflow:auto;">content will scroll when it is bigger then the div</div><!--content-->
 
Back
Top