begin process at 2010 02 10 16:22:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Défilement automatique d'une page


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Défilement automatique d'une page

mardi 9 septembre 2008 à 11:02:19 | Défilement automatique d'une page

scls19fr

Bonjour,

je souhaite faire en sorte que le contenu d'une fenêtre du navigateur défile automatiquement vers le bas (jusqu'au bas de la page). Une fois le bas de la page atteint, il faut que ça défile vers le haut jusqu'à atteindre le haut de la page et vice verca (c'est pour faire un système d'affichage dynamique)

Je ne sais pas trop comment gérer ça en JavaScript
j'ai googler un peu avec des mots comme javascript scroll up down top bottom mais sans succès...

Je suis tombé notamment sur
http://www.javascriptfr.com/forum/sujet-SCROLL-SUR-PAGE-WEB_940672.aspx
mais comment créer une fonction top() qui retourne vrai lorsque le haut est atteint

Sur le principe je pense qu'il vaut une variable qui stocke l'état (défilement vers le bas en cours ou défilement vers le haut ou pas de défilement)

Il faut tester si le haut est atteint.
Dans ce cas si on était en train de défiler vers le haut on défile vers le bas (on change la variable d'état)

Il faut aussi tester si le bas est atteint
Si c'est le cas et que l'on était en train de défiler ver les bas on défile vers le haut (en fait on change la variable d'état)

On décale ensuite en fonction de la valeur contenue dans la variable d'état


Pouvez-vous m'aider ?

Merci d'avance
mardi 9 septembre 2008 à 11:40:10 | Re : Défilement automatique d'une page

scls19fr

Actuellement j'ai fait ceci (mais je ne sais pas quoi mettre dans ma fonction top)


<html>

<head>
<title>Scroll</title>

<script language="JavaScript">
var direction = true; // true=bas false=haut
var scroll = true;

function pageScroll() {
if (scroll) {
  if (bottom())
    direction=false;

  if (top())
    direction=true;

  if (direction) {
    window.scrollBy(0,10);
  } else {
    window.scrollBy(0,-10);   
  }
}
  scrolldelay = setTimeout('pageScroll()',100); // scrolls every 1000 milliseconds
}

/*
function stopScroll() {
  clearTimeout(scrolldelay);
}
function jumpScroll() {
  window.scroll(0,150); // horizontal and vertical scroll targets
}
*/

function bottom()
{
if ((document.body.scrollTop + document.body.clientHeight) == document.body.scrollHeight)
  return true;
}

function top()
{
  return false;
//if (document.body.scrollTop == 0)
//  return true;
}

</script>

</head>


<body onLoad="pageScroll()">
<h1>Scroll</h1>
<?php
$str="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla metus velit, lobortis a, tincidunt vitae, bibendum tincidunt, eros. In eget orci aliquam eros tristique feugiat. Vestibulum feugiat vehicula enim. Aenean bibendum ipsum in enim. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec pharetra mi non odio. Integer orci nisl, placerat non, adipiscing et, congue non, velit. Integer ipsum. Duis ac ipsum at eros egestas aliquam. Praesent quis sem et justo rutrum tincidunt. Morbi mattis pretium urna. Pellentesque eget orci auctor libero tristique condimentum. ";
for ($i==0 ; $i<20 ; $i++) {
  echo $str;
}
echo "\n";
?>
</body>

</html>
mardi 9 septembre 2008 à 12:40:40 | Re : Défilement automatique d'une page

bultez

Membre Club
bonjour,

function top()
{    if ( document.body.scrollTop==0 )  return true;   }

peut-être ?

CordialementBul[mon Site][M'écrire]
mardi 9 septembre 2008 à 13:09:45 | Re : Défilement automatique d'une page

scls19fr

nickel merci beaucoup
mardi 9 septembre 2008 à 13:34:26 | Re : Défilement automatique d'une page

bultez

Membre Club
il ne reste qu'à optimiser un ch'tiot poil....  
mais bon, pour le principe, pas pour les performances neutre.gif
Cordialement     Bul  [mon Site] [M'écrire]
mardi 9 septembre 2008 à 13:53:31 | Re : Défilement automatique d'une page

scls19fr

Ah... j'ai quand même un petit soucis...

je veux faire la même chose mais pour un iframe
j'ai mis mon code JavaScript dans un .js
j'ai essayé et ça marche nickel pour faire défiler une page html simple
par contre ça merde pour ma page contenant un iframe

As-tu une idée ?
(c'est parfois difficile lorsqu'on est seul de voir pourquoi ça déconne)

Si tu peux aussi me dire ce que tu optimiserais
(ainsi qu'un BON bouquin ou très bon site sur JS)

Merci d'avance

Le fichier autoscroll.js

var direction = true; // true=bas false=haut
var scroll = true;

var delay=100;
var step=5;

var obj=null;

function pageScroll(new_obj) {
  scrolldelay = setTimeout('pageScroll(obj)', delay); // scrolls every xxx milliseconds

  obj=new_obj;
  //obj=document.body;
  //obj=document.getElementById('mydata').src;

  if (scroll) {
    if ( bottom() ) {
      direction=false;
      //alert("bottom");
    }

    if ( top() ) {
      direction=true;
      //alert("top");
    }

    if ( direction ) {
      window.scrollBy(0, step);
    } else {
      window.scrollBy(0, -step);   
    }
  }
}

function bottom()
{
  if ( (obj.scrollTop + obj.clientHeight) == obj.scrollHeight ) {
    return true;
  } else {
    return false;
  }
}

function top()
{
  if ( obj.scrollTop==0 ) {
    return true;
  } else {
    return false;
  }
}


Le contenu (ce qui est dans l'iframe) content.php
<html>

<head>
  <title>Content</title>
</head>

<body>
<h1>Content</h1>
<?php
$str="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla metus velit, lobortis a, tincidunt vitae, bibendum tincidunt, eros. In eget orci aliquam eros tristique feugiat. Vestibulum feugiat vehicula enim. Aenean bibendum ipsum in enim. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec pharetra mi non odio. Integer orci nisl, placerat non, adipiscing et, congue non, velit. Integer ipsum. Duis ac ipsum at eros egestas aliquam. Praesent quis sem et justo rutrum tincidunt. Morbi mattis pretium urna. Pellentesque eget orci auctor libero tristique condimentum. ";
for ($i==0 ; $i<7 ; $i++) {
  echo $str;
}
echo "\n";
?>
</body>

</html>


et le contenant (la page qui contient l'iframe) scroll_iframe.php
<html>
  <head>
    <title>Scroll an iframe</title>
    <script language="javascript" src="autoscroll.js"></script>
  </head>

  <body onLoad="pageScroll(document.getElementById('mydata').body)">

    <iframe id="mydata" src="content.php" height="100%" width="100%" frameborder="0">
      Alternative text for browsers that do not understand IFrames.
    </iframe>
  </body>

</html>
mardi 9 septembre 2008 à 14:11:22 | Re : Défilement automatique d'une page

scls19fr

Attention... j'ai oublié de préciser une chose je ne veux/peux pas toucher au fichier content.php

En effet, le contenu de l'iframe est généré par une application sur laquelle je n'ai pas la main... donc il faut que je fasse ça depuis le contenant (scroll_iframe.php)
mardi 9 septembre 2008 à 14:40:27 | Re : Défilement automatique d'une page

scls19fr

J'ai essayé de mettre

onLoad="pageScroll(document.getElementById('mydata').contentDocument.body)"

mais cela ne fonctionne pas...

Une idée ?
mardi 9 septembre 2008 à 14:57:21 | Re : Défilement automatique d'une page

scls19fr

Je pense être sur la piste d'une idée...

Le problème vient vraissembalement de
window.scrollBy(0, step);
Il faudrait appliquer scrollBy non pas à la fenêtre mais à l'iframe
j'ai essayé
document.getElementById('mydata').scrollBy(0, step); mais ça ne marche pas

une idée ? merci...
mardi 9 septembre 2008 à 15:00:40 | Re : Défilement automatique d'une page

bultez

Membre Club
c'est "le contenu" de l'iframe qu'il faut bouger
        pas le contenu de la page.
le fait de mettre dans un .js ne change rien.
CordialementBul[mon Site][M'écrire]

1 2

Cette discussion est classée dans : page, défilement, haut, bas, défile


Répondre à ce message

Sujets en rapport avec ce message

défilement de bas en haut [ par moha007 ] bonjour les amisj'ai créé un système de news en php et je veux que mes news s'affichent ds une case, mais le prob, je veux qu'ils défilent de bas en h Savoir si le l'ascenceur est en bas [ par jmtoulon ] Bonjour,Voila je voudrais savoir comment faire pour afficher la valeur True dans le cas ou le scroll vertical est au maximun de la page, c'est à dire déclencher des fonctions d'alluamge et modification de boutons d'un autre frame [ par BrunoJWest ] le problème s'est posé plusieurs fois et je ne l'ai pas résolu sans contournement pour l'instant.Sur la plupart de mes sites j'ai deux frames, on va d structure HTML [ par pitchoune ] Bonjour, Soit le code d'une page HTML suivant :   Titre    < revenir en haut de la page sans <a href="#ancre"> [ par humhumha ] Bonjour, je ne sais pas si c'est le bon thème, j'ai pris celui qui s'y rapprochai le +, désolé si c'est hors-sujet.J'ai un petit problème qui n'a pas position bas du footer page web [ par Jarod1980 ] Bonjour,Je savoir comment positionner mon footer de ma page web en bas de mon écran et ceci pour chaque résolution.Mon footer est défini entre 2 balis Positionner curseur en haut de la page [ par aloisio11 ] Bonjour,J'ai un problemme peut banal : Je charge une page avec plein de référence, je clique sur le haut de ma page pour pouvoir faire une recherche a actualiser la valeur d'une boite texte à partir d'une autre frame [ par vodkapomme43 ] Bonjour,Mon problème est le suivant:J'ai une page index.php qui est divisée en deux frames. Dans la frame "Haut" j'ai la page Haut.php et dans la fram Comment Bloquer une frame a X pxl du bas ... [ par GuilleW ] Voila mon probleme je voudrai avoir un semblant de barre de navigation en ba d'une page ...cette page a deux frame une en haut une en bas ... je voudr popup + barre de défilement [ par minet03 ] Coucou, j'ai un petit problème avec un popup, j'ai trouver la source sur TJS et elle ne marche pas. En fait je voudrais qu'il y ai la barre de défilem


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,012 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales