<!-- /* Copyright 2001 : Atout Développement */ /* Auteur : Yvan Vanwynsberghe */ var ns4 = (document.layers)? true:false; //NS 4 var ie4 = (document.all)? true:false; //IE 4 var dom = (document.getElementById)? true:false; //DOM
function GetNS4Object(MyID,MyDocument) { var MyObject= eval('MyDocument.'+MyID); if (!(MyObject)) for(var i=0;i<MyDocument.layers.length;i++) { MyObject = GetNS4Object(MyID,MyDocument.layers[i].document); if (MyObject) break; } return MyObject; }
function GetObject(MyID) { if (dom) return document.getElementById(MyID); if (ie4) return document.all[MyID]; if (ns4) return GetNS4Object(MyID,window.document); return 0; }
function GetCSS(MyObject) { if (dom || ie4) return MyObject.style; else if (ns4) return MyObject; else return 0; }
function GetHeight(MyObject) { if (dom || ie4) return MyObject.offsetHeight; else if (ns4) return MyObject.clip.height; else return 0; }
function GetWidth(MyObject) { if (dom || ie4) return MyObject.offsetWidth; else if (ns4) return MyObject.clip.width; else return 0; }
function GetTop(MyObject) { if (dom || ie4) return (MyObject.offsetTop); if (ns4) return MyObject.y; return 0; }
function GetLeft(MyObject) { if (dom || ie4) return MyObject.offsetLeft; if (ns4) return MyObject.x; return 0; }
function DelTextNode(MyObject) { var node = MyObject.firstChild; var next;
while (node) { next = node.nextSibling; if (node.nodeType == 3) MyObject.removeChild(node); node = next; } }
function CreateChildren(MyObject,HoriSpacer,VertSpacer) { var i=0; var MyChildren = new Array(); if (dom) { DelTextNode(MyObject); for (i=0;i<MyObject.childNodes.length;i++) { MyChildren[i] = new CreateObject(0,MyObject.childNodes[i]); MyChildren[i].Move(i*HoriSpacer,i*VertSpacer); } return MyChildren; } if (ie4) { for (i=0;i<MyObject.children.length;i++) { MyChildren[i] = new CreateObject(0,MyObject.children(i)); MyChildren[i].Move(i*HoriSpacer,i*VertSpacer); } return MyChildren; } if (ns4) { for (i=0;i<MyObject.document.layers.length;i++) { MyChildren[i] = new CreateObject(0,MyObject.layers[i]); MyChildren[i].Move(i*HoriSpacer,i*VertSpacer); } return MyChildren; } }
function ScrollUp() { var MyInterval = this.Interval1; this.stop(); if (this.Children[this.FirstChildren].Y<-this.threshold) { MyInterval = this.Interval2; this.Children[this.FirstChildren].Down(this.TotalHeight); if (this.FirstChildren<this.Children.length-1) { this.FirstChildren++; this.threshold += this.Children[this.FirstChildren].Height; } else { this.FirstChildren = 0; this.threshold = this.Children[this.FirstChildren].Height+this.Spacer; } } for (var i=0;i<this.Children.length;i++) { this.Children[i].Up(this.Step); } this.ProcessId = setTimeout(this.name + '.start()', MyInterval); }
voilà un code qui permet de faire le scroll d'un div en javascript. Je crois qu'on peut facilement faire une fonction pour faire un scrollup (ici on fait descendre la box, je voudrais la faire remonter) qqn peut il m'indiquer les qqs modifs à faire merci
Marsh Posté le 15-11-2004 à 00:02:05
<!--
/* Copyright 2001 : Atout Développement */
/* Auteur : Yvan Vanwynsberghe */
var ns4 = (document.layers)? true:false; //NS 4
var ie4 = (document.all)? true:false; //IE 4
var dom = (document.getElementById)? true:false; //DOM
function GetNS4Object(MyID,MyDocument)
{
var MyObject= eval('MyDocument.'+MyID);
if (!(MyObject))
for(var i=0;i<MyDocument.layers.length;i++)
{
MyObject = GetNS4Object(MyID,MyDocument.layers[i].document);
if (MyObject) break;
}
return MyObject;
}
function GetObject(MyID)
{
if (dom) return document.getElementById(MyID);
if (ie4) return document.all[MyID];
if (ns4) return GetNS4Object(MyID,window.document);
return 0;
}
function GetCSS(MyObject)
{
if (dom || ie4) return MyObject.style;
else if (ns4) return MyObject;
else return 0;
}
function GetHeight(MyObject)
{
if (dom || ie4) return MyObject.offsetHeight;
else if (ns4) return MyObject.clip.height;
else return 0;
}
function GetWidth(MyObject)
{
if (dom || ie4) return MyObject.offsetWidth;
else if (ns4) return MyObject.clip.width;
else return 0;
}
function GetTop(MyObject)
{
if (dom || ie4)
return (MyObject.offsetTop);
if (ns4) return MyObject.y;
return 0;
}
function GetLeft(MyObject)
{
if (dom || ie4) return MyObject.offsetLeft;
if (ns4) return MyObject.x;
return 0;
}
function MoveObject(myX,myY)
{
this.X = myX;
this.Y = myY;
this.CSS.left=this.X;
this.CSS.top=this.Y;
}
function MoveObjectUp(mystep)
{
this.Y -= mystep;
this.CSS.top=this.Y;
}
function MoveObjectDown(mystep)
{
this.Y += mystep;
this.CSS.top=this.Y;
}
function CreateObject(DivId,MyObject)
{
if (MyObject)
this.Object = MyObject;
else
this.Object = GetObject(DivId);
if (this.Object)
{
this.CSS = GetCSS(this.Object);
this.Height = GetHeight(this.Object);
this.Width = GetWidth(this.Object);
this.X = GetTop(this.Object);
this.Y = GetLeft(this.Object);
this.Move = MoveObject;
this.Up = MoveObjectUp;
this.Down = MoveObjectDown;
}
return this;
}
function DelTextNode(MyObject)
{
var node = MyObject.firstChild;
var next;
while (node)
{
next = node.nextSibling;
if (node.nodeType == 3)
MyObject.removeChild(node);
node = next;
}
}
function CreateChildren(MyObject,HoriSpacer,VertSpacer)
{
var i=0;
var MyChildren = new Array();
if (dom)
{
DelTextNode(MyObject);
for (i=0;i<MyObject.childNodes.length;i++)
{
MyChildren[i] = new CreateObject(0,MyObject.childNodes[i]);
MyChildren[i].Move(i*HoriSpacer,i*VertSpacer);
}
return MyChildren;
}
if (ie4)
{
for (i=0;i<MyObject.children.length;i++)
{
MyChildren[i] = new CreateObject(0,MyObject.children(i));
MyChildren[i].Move(i*HoriSpacer,i*VertSpacer);
}
return MyChildren;
}
if (ns4)
{
for (i=0;i<MyObject.document.layers.length;i++)
{
MyChildren[i] = new CreateObject(0,MyObject.layers[i]);
MyChildren[i].Move(i*HoriSpacer,i*VertSpacer);
}
return MyChildren;
}
}
function ScrollUp()
{
var MyInterval = this.Interval1;
this.stop();
if (this.Children[this.FirstChildren].Y<-this.threshold)
{
MyInterval = this.Interval2;
this.Children[this.FirstChildren].Down(this.TotalHeight);
if (this.FirstChildren<this.Children.length-1)
{
this.FirstChildren++;
this.threshold += this.Children[this.FirstChildren].Height;
}
else
{
this.FirstChildren = 0;
this.threshold = this.Children[this.FirstChildren].Height+this.Spacer;
}
}
for (var i=0;i<this.Children.length;i++)
{
this.Children[i].Up(this.Step);
}
this.ProcessId = setTimeout(this.name + '.start()', MyInterval);
}
function ScrollStop()
{
if (this.ProcessId)
clearTimeout(this.ProcessId);
this.ProcessId = null;
}
function Box(BoxName, DivId, myStep, myTempo1, myTempo2, mySpacer)
{
this.name = BoxName;
this.Step = myStep ? myStep : 1;
this.Interval1 = myTempo1 ? myTempo1 : 100;
this.Interval2 = myTempo2 ? myTempo2 : 100;
this.Spacer = mySpacer ? mySpacer : 0;
this.ProcessId = null;
this.Container = new CreateObject(DivId);
this.Children = new CreateChildren(this.Container.Object,0,mySpacer);
this.FirstChildren = 0;
this.LastChildren = this.Children.length-1;
this.threshold = this.Children[0].Height+this.Spacer;
var myHeight = 0;
for (var i=0;i<this.Children.length;i++)
{
myHeight += (this.Children[i].Height + this.Spacer);
}
this.TotalHeight = myHeight;
this.Container.visibility = 'visible';
}
Box.prototype.start = ScrollUp;
Box.prototype.stop = ScrollStop;
//-->
voilà un code qui permet de faire le scroll d'un div en javascript. Je crois qu'on peut facilement faire une fonction pour faire un scrollup (ici on fait descendre la box, je voudrais la faire remonter) qqn peut il m'indiquer les qqs modifs à faire merci