Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
917 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  fenêtre défilant automatiquement ; comment faire pour la stopper ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fenêtre défilant automatiquement ; comment faire pour la stopper ?

n°821252
tristus
Posté le 12-08-2004 à 11:37:21  profilanswer
 

Bonjour à tous !
 
J'ai trouvé ce petit script super sympa à l'adresse suivante :
http://www.scriptsplus.com/scripts [...] t=scroller
(et y'en a plein d'autres ! avis aux webmatsrers...)
 
Il permet de fairé défiler tranquillement une fenêtre, de photos par exemple.
voici le code :
 
 
dans "head" :
 
<script>
 
var position = 0;
function scroller() {
if (position != 300) {
position++;
scroll(0,position);
clearTimeout(timer);
var timer = setTimeout("scroller()",2); timer;
}
else{
location.replace("#" );
}}</script>
 
et dans la balise body :
 
<body onload="scroller()">
 
 
Rien à dire, ça marche, et c'est mignon comme tout...Mais comment faire pour stopper le défilement et récupérer la "main" sur le curseur de la barre de défilement ? Si on clique enfoncé dessus, certes ça stoppe, mais ça repart dès qu'on relâche, et pas moyen de remonter dans la fenêtre.
 
Tant que j'y suis, à  quoi correspond le "300" de la condition If ? à la durée du défilement ?  
 
Merci de vos lumières,...j'espère un défilement ininterrompu de réponses ! ;)  :)
Tristan

mood
Publicité
Posté le 12-08-2004 à 11:37:21  profilanswer
 

n°821306
gubug
Posté le 12-08-2004 à 12:08:57  profilanswer
 

position c'est le y puisque scroll prend en paramètre le x,y de là où tu veux scroller. le y==0 c'est le haut de la page, donc 300 c'est ...ben plus bas quoi.
 
il se sert d'un timer, pour fluidifier la chose je suppose, qui scrolle toutes les 2 millisecondes.
 
pour le stopper par un clic sur la fenêtre, fais un truc du genre:

Code :
  1. var stoppe_moi_ca = false;
  2. function clickHandler () {
  3. stoppe_moi_ca = !stoppe_moi_ca;
  4. }
  5. document.onclick = clickHandler;


 
et tu prends cette variable en compte dans le scroll

Code :
  1. function scroller() {
  2. if (stoppe_moi_ca)
  3.   return;
  4. // la suite ici ...
  5. }


Message édité par gubug le 12-08-2004 à 12:45:49
n°821344
-Farenheit​-
Posté le 12-08-2004 à 12:36:37  profilanswer
 

ici position sert à la fois de durée de défilement (300 ms) et de coordonnée de positionnement.
Au bout de 3 secondes, tu te retrouve à le position 300 et ton défilement s'arrête.
 
Pour le reste gubug t'as donné la solution

n°821467
tristus
Posté le 12-08-2004 à 14:22:34  profilanswer
 

Merci les gars, mais...ça marche pas.
J'ai surement pas rentré les données là où il fallait.
voici ma prose :
<script>
<!--
var stoppe = false;
function clickHandler () {
 stoppe = !stoppe;
 }
 document.onClick = clickHandler;
 
var position = 0;
function scroller() {
if (stoppe)
return;
}
else if (position != 2000) {
position++;
scroll(0,position);
clearTimeout(timer);
var timer = setTimeout("scroller()",2); timer;
}
else{
location.replace("#" );
}}
//-->
 
 
</script>
</head>
 
<body>
<body onLoad="scroller()">
 
Ou diantre ai-je buggé ?
Merci !

n°821506
-Farenheit​-
Posté le 12-08-2004 à 14:53:30  profilanswer
 

A première vue, je dirais :
 

Citation :

function scroller() {  
if (stoppe) {
return;  
}  


 

Citation :

<body>
<body onLoad="scroller()">  

n°821577
tristus
Posté le 12-08-2004 à 15:45:37  profilanswer
 

Merci !
j'ai réussi à stopper le défilement avec un bouton.
Si j'ai bien tout cap^té, chaque fois qu'on resollicite clickhandler, la variable stoppe reçoit le contraire de sa valeur précédente (donc soit true, soit false).
Mais en recliquant sur le bouon stop, ça ne redémarre pas.
J'ai alors pondu une autre fonction "redemar", mais aucune réaction du bestiau....C'est p'têt pasque ça tourne à 300000KM/S dans le if---return, il n'a pas le temps de capter que "stoppe" est redevenu"false" ?
que la vie est cruelle, parfois...
 
voici ma prose :
<script>
 
 
function clickHandler () {
 stoppe = true;
 }
 
function redemar () {
 stoppe = false;
 }
 
var stoppe = false;
 
 
var position = 0;
function scroller() {
if (stoppe) {
return;
}
else if (position != 2000) {
position++;
scroll(0,position);
clearTimeout(timer);
var timer = setTimeout("scroller()",2); timer;
 
}
else{
location.replace("#" );
}}
//-->
 
 
</script>
</head>
 
<body>
<body onLoad="scroller()">
  <input name="button2" type = "button" onClick = "clickHandler ();" value = "stop"; >
  <input name="button" type = "button" onClick = "redemar (); " value = "continuez"; >

n°821581
tristus
Posté le 12-08-2004 à 15:46:55  profilanswer
 

Où y'aurait pas une fonction "pause" quelque part, des fois ?? ;) ;:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  fenêtre défilant automatiquement ; comment faire pour la stopper ?

 

Sujets relatifs
[MFC] Maximisation automatique de la fenetreFenêtre principale à la souris sous Visual ?
Valider un formualire automatiquement par php ou javascript[MFC] Affichage dans une fenetre texte
[VB.NET] Afficher le contenu d'une hashtable dans une fenêtre webgenerer automatiquement du HTML a partir de mon couple xml xsl
action sur la fermeture d'une fenetre[mozilla] forcer la fermeture de la fenêtre
Comment faire télécharger automatiquement un .txt ?changer la couleur de la fenetre dans la barre de taches
Plus de sujets relatifs à : fenêtre défilant automatiquement ; comment faire pour la stopper ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR