frank: Layer im Layer ansprechen!

Beitrag lesen

Tach Zusammen,

dieses Scrollscript funzt mehr als gut, aber ich möchte es ein
wenig modifizieren. Und zwar möchte ich alle Layer zuvor in ein
Layer namens id="alles" packen. wie ändern sich die Referenzierungen
im Script an die Layer im Layer! s.unten

var upH = 14;
var upW = 14;
var downH = 14;
var downW = 14;
var dragH = 14;
var dragW = 17;
var scrollH = 110;
var speed = 4;

var dom = document.getElementById ? true:false;
var nn4 = document.layers ? true:false;
var ie4 = document.all ? true:false;

var mouseY;
var mouseX;

var clickUp = false;
var clickDown = false;
var clickDrag = false;
var clickAbove = false;
var clickBelow = false;

var timer = setTimeout("",500);
var upL;
var upT;
var downL;
var downT;
var dragL;
var dragT;
var rulerL;
var rulerT;
var contentT;
var contentH;
var contentClipH;
var scrollLength;
var startY;

function down(e){
 if((document.layers && e.which!=1) || (document.all && event.button!=1)) return true;
 getMouse(e);
 startY = (mouseY - dragT);

if(mouseX >= upL && (mouseX <= (upL + upW)) && mouseY >= upT && (mouseY <= (upT + upH))){
  clickUp = true;
  return scrollUp();
 }

else if(mouseX >= downL && (mouseX <= (downL + downW)) && mouseY >= downT && (mouseY <= (downT + downH))){
  clickDown = true;
  return scrollDown();
 }

else if(mouseX >= dragL && (mouseX <= (dragL + dragW)) && mouseY >= dragT && (mouseY <= (dragT + dragH))){
  clickDrag = true;
  return false;
 }
 else if(mouseX >= dragL && (mouseX <= (dragL + dragW)) && mouseY >= rulerT && (mouseY <= (rulerT + scrollH))){

if(mouseY < dragT){
   clickAbove = true;
   clickUp = true;
   return scrollUp();
  }

else{
   clickBelow = true;
   clickDown = true;
   return scrollDown();
  }
 }

else{
  return true;
 }
}

function move(e){
 if(clickDrag && contentH > contentClipH){
  getMouse(e);
  dragT = (mouseY - startY);

if(dragT < (rulerT))
   dragT = rulerT;
  if(dragT > (rulerT + scrollH - dragH))
   dragT = (rulerT + scrollH - dragH);

contentT = ((dragT - rulerT)*(1/scrollLength));
  contentT = eval('-' + contentT);

moveTo();

if(ie4)
   return false;
 }
}

function up(){
 clearTimeout(timer);

clickUp = false;
 clickDown = false;
 clickDrag = false;
 clickAbove = false;
 clickBelow = false;
 return true;
}

function getT(){
 if(ie4)
  contentT = document.all.content.style.pixelTop;
 else if(nn4)
  contentT = document.contentClip.document.content.top;
 else if(dom)
  contentT = parseInt(document.getElementById("content").style.top);
}

function getMouse(e){
 if(ie4){
  mouseY = event.clientY + document.body.scrollTop;
  mouseX = event.clientX + document.body.scrollLeft;
 }
 else if(nn4 || dom){
  mouseY = e.pageY;
  mouseX = e.pageX;
 }
}

function moveTo(){
 if(ie4){
  document.all.content.style.top = contentT;
  document.all.ruler.style.top = dragT;
  document.all.drag.style.top = dragT;
 }
 else if(nn4){
  document.contentClip.document.content.top = contentT;
  document.ruler.top = dragT;
  document.drag.top = dragT;
 }
 else if(dom){
  document.getElementById("content").style.top = contentT + "px";
  document.getElementById("drag").style.top = dragT + "px";
  document.getElementById("ruler").style.top = dragT + "px";
 }
}

function scrollUp(){
 getT();

if(clickAbove){
  if(dragT <= (mouseY-(dragH/2)))
   return up();
 }

if(clickUp){
  if(contentT < 0){
   dragT = dragT - (speed*scrollLength);

if(dragT < (rulerT))
    dragT = rulerT;

contentT = contentT + speed;
   if(contentT > 0)
    contentT = 0;

moveTo();
   timer = setTimeout("scrollUp()",25);
  }
 }
 return false;
}

function scrollDown(){
 getT();

if(clickBelow){
  if(dragT >= (mouseY-(dragH/2)))
   return up();
 }

if(clickDown){
  if(contentT > -(contentH - contentClipH)){
   dragT = dragT + (speed*scrollLength);
   if(dragT > (rulerT + scrollH - dragH))
    dragT = (rulerT + scrollH - dragH);

contentT = contentT - speed;
   if(contentT < -(contentH - contentClipH))
    contentT = -(contentH - contentClipH);

moveTo();
   timer = setTimeout("scrollDown()",25);
  }
 }
 return false;
}

function reloadPage(){
 location.reload();
}

function eventLoader(){
 if(ie4){

upL = document.all.up.style.pixelLeft;
  upT = document.all.up.style.pixelTop;

downL = document.all.down.style.pixelLeft;
  downT = document.all.down.style.pixelTop;

dragL = document.all.drag.style.pixelLeft;
  dragT = document.all.drag.style.pixelTop;

rulerT = document.all.ruler.style.pixelTop;

contentH = parseInt(document.all.content.scrollHeight);
  contentClipH = parseInt(document.all.contentClip.style.height);
 }
 else if(nn4){

upL = document.up.left;
  upT = document.up.top;

downL = document.down.left;
  downT = document.down.top;

dragL = document.drag.left;
  dragT = document.drag.top;

rulerT = document.ruler.top;

contentH = document.contentClip.document.content.clip.bottom;
  contentClipH = document.contentClip.clip.bottom;
 }
 else if(dom){

upL = parseInt(document.getElementById("up").style.left);
  upT = parseInt(document.getElementById("up").style.top);

downL = parseInt(document.getElementById("down").style.left);
  downT = parseInt(document.getElementById("down").style.top);

dragL = parseInt(document.getElementById("drag").style.left);
  dragT = parseInt(document.getElementById("drag").style.top);

rulerT = parseInt(document.getElementById("ruler").style.top);

contentH = parseInt(document.getElementById("content").offsetHeight);
  contentClipH = parseInt(document.getElementById("contentClip").offsetHeight);
  document.getElementById("content").style.top = 0 + "px";

}

scrollLength = ((scrollH-dragH)/(contentH-contentClipH));

if(nn4){
  document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
  window.onresize = reloadPage;
 }
 document.onmousedown = down;
 document.onmousemove = move;
 document.onmouseup = up;
}