Genkald funktion
Hej eksperter,Jeg har et script der kan benyttes som scrollbar.
Det virker ganske udemærket, men problemet er at det er bygget til en scrollbar. Jeg skal nu bruge to scroll.
Da javascript ikke er min stærke side, søger jeg en der kan omskrive scriptet således det kan kaldes og bruges på flere divs.
Som jeg ser det, og har forsøgt - er det vel egentlig bare de tre steder der henvises til divs, og så selve højden på boksen med indholdet. Men det er ikke lykkes mig at ændre det.
Da jeg ikke ved hvor omfattende opgaven er, sætter jeg 100 points af. Er opgaven krævende, hæver vi selvfølgelig antallet.
Sig til hvis der skal mere uddybende forklaring til.
Kode:
<script language="javascript" type="text/javascript">
var IE=(document.all)?true:false;
if(!IE){document.captureEvents(Event.MOUSEMOVE);}
var boolu=false;
var Timer;
function setScroll(){
var bard=document.getElementById('bar');
var contd=document.getElementById('content');
var scrolld=document.getElementById('scrollbar');
if(contd.scrollHeight>contd.clientHeight){
contd.scrollTop="0";
scrolld.style.height=398/(contd.scrollHeight/contd.clientHeight);
}else{
scrolld.style.display="none";
bard.style.display="none";
}
}
function enableScroll(e){
var bard=document.getElementById('bar');
var contd=document.getElementById('content');
var scrolld=document.getElementById('scrollbar');
if(boolu==true){
tempt=parseInt(scrolld.style.top);
tmpY=(IE)?event.clientY:e.pageY;
document.onmousemove=scrollBar;
}
}
function scrollBar(e){
var bard=document.getElementById('bar');
var contd=document.getElementById('content');
var scrolld=document.getElementById('scrollbar');
mosY=(IE)?event.clientY:e.pageY;
if(boolu==true&&(tempt+mosY-tmpY)>=0&&(tempt+mosY-tmpY)<=398-parseInt(scrolld.style.height)){
scrolld.style.top=(tempt+mosY-tmpY)+"px";
contd.scrollTop=(tempt+mosY-tmpY)*(contd.scrollHeight/contd.clientHeight);
}else if(boolu==true&&(tempt+mosY-tmpY)<=0){
scrolld.style.top=0+"px";
contd.scrollTop=0+"px";
}else if(boolu==true&&(tempt+mosY-tmpY)>=398-parseInt(scrolld.style.height)){
scrolld.style.top=398-parseInt(scrolld.style.height);
contd.scrollTop=(tempt+mosY-tmpY)*(contd.scrollHeight/contd.clientHeight);
}
}
function scrll(dir){
var bard=document.getElementById('bar');
var contd=document.getElementById('content');
var scrolld=document.getElementById('scrollbar');
contd.scrollTop+=10*dir;
scrolld.style.top=contd.scrollTop/(contd.scrollHeight/contd.clientHeight);
Timer=setTimeout(function(){scrll(dir)},10);
}
document.onmousedown=enableScroll;
document.onmouseup=function(){boolu=false};
document.onblur=function(){boolu=false};
window.onload=setScroll;
</script>
