Salut a tous, tout d abord, et merci pour toutes ces excellentes sources.
Voila mon souci:
J ai un iframe, dedans j ai fait un scroll avec des fleches pour monter descencre le contenu via un systeme de layers, plus une fleche qui ramenne auto tout en haut du document. Le but etant de garder une hauteur de page fixe.
Ensuite j ai voulu inserer en fin de paragraphes des
<span onclick=verscroll('top')>Top</span> ou
<a href="#" onclick='verscroll('top')>Top</a>
pour me ramenner en haut de page. Ces span appellent strictement la meme fonction que la fleche de retour vers le haut de page. C'est un moyen de plus de retourner en haut de page.
Voila l'embrouille:
Lorsque j'utilise le span pour revenir en haut de page, la vitesse de scroll des layers est augmentée, ce a chaque fois, la vitesse ne cesse de croitre.
Pourtant ds le script la vitesse est toujours initialisée, je ne comprend donc pas pourquoi elle varie.
Avec la fleche de retour vers le top, image gif avec onmouseover=verscroll('top'), jamais de probleme.
Avec les liens de retour vers le top, le probleme est immediat.
<a href='#' onclick=verscroll('top')>
J'ai mis l exemple en ligne (depouillé) ici:
[ Lien ]
voila la source javascript, je vous zappe les detections de navigateur.
(tiree de ce site d'ailleurs et un peu retourchée):
Les parentheses des if et else sont ok, je precise car dans la fenetre ca fait fouillis.
function verScroll(dir, spd, loop) {
loop = true;
direction = "up";
speed=2;
scrolltimer = null;
var page= eval("document.getElementById('elementTexte').style");
direction= dir;
speed=spd;
var y_pos = parseInt(page.top);
if (loop == true)
{
if (direction == "dn")
{
page.top = (y_pos - (speed));
}
else
{
if (direction == "up" && y_pos < 10)
{
page.top = (y_pos + (speed));
}
else
{
if (direction == "top")
{
page.top = 10;
}
}
}
scrolltimer = setTimeout("verScroll(direction,speed)",2);
}
}
function stopScroll() {
loop = false;
clearTimeout(scrolltimer);
speed=0;
direction=null;
}
Suis pas une bete, et la, j hallucine complet....
Comment arreter l accélération ?
Merci pour vos réponses...
Bye,
Anton