Je le dis tout de suite, les frames, j'aime pas.

Maintenant, il faut faire avec ... J'ai une page avec pas mal de truc dessus quand même.
Ce qui me pose problème, c'est un script qui me permet (dans l'idéal) de faire défiler des calques à la façon d'une iframe.
Je n'arrive pas à voir où ça foire (sous IE, Firebird : ok)...
Quelqu'un pourrait m'aider ?
La page en question :
[...]
Le script JS :
Code : Tout sélectionner
function vertScroll(calque, dir, spd, loop) {
if (document.layers && (!document.all || !document.getElementById))return;
var y_pos=0, last_pos=0;
loop = true;
direction = dir;
speed = spd;
scrolltimer = null;
if (document.getElementById)
var page= document.getElementById(calque);
else {
if (document.all)
var page = document.all.calque;
}
y_pos = page.offsetTop;
last_pos = page.style.top.substring(0,page.style.top.indexOf('px'));
// window.status = y_pos+" / "+last_pos;
if (loop == true) {
if (direction == "dn" && y_pos>-page.offsetHeight) page.style.top = (y_pos - (speed))+"px";
else {
if (direction == "up" && last_pos>-page.offsetHeight) page.style.top = (last_pos - (speed))+"px";
}
scrolltimer = setTimeout(function(){vertScroll(calque, dir, spd, loop)}, 25);
}
}
function noScroll() {
if (document.layers && (!document.all || !document.getElementById))return;
loop = false;
clearTimeout(scrolltimer);
}
Je suis perdu là ...
-------------------------------------------------------
Edit :
le script JS original :
Code : Tout sélectionner
function vertScroll(calque, dir, spd, loop) {
if (document.layers && (!document.all || !document.getElementById))return;
var y_pos=0;
loop = true;
direction = dir;
speed = spd;
scrolltimer = null;
if (document.getElementById)
var page= document.getElementById(calque);
else {
if (document.all)
var page = document.all.calque;
}
y_pos = page.offsetTop;
window.status= y_pos;
if (loop == true) {
if (direction == "dn" && y_pos>-page.offsetHeight) page.style.top = (y_pos - (speed))+"px";
else {
if (direction == "up" && y_pos < 1) page.style.top = (y_pos + (speed))+"px";
else {
if (direction == "top") page.style.top = "0px";
}
}
scrolltimer = setTimeout(function(){vertScroll(calque, dir, spd, loop)}, 25);
}
}
function noScroll() {
if (document.layers && (!document.all || !document.getElementById))return;
loop = false;
clearTimeout(scrolltimer);
}
C'est la fin des haricots ce truc !
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9