IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

script avec défilement vertical


Sujet :

jQuery

  1. #1
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut script avec défilement vertical
    Bonjour à tous

    je post ici ne sachant pas trop où faire ma demande

    je fais des recherches depuis ce matin et je ne trouve rien d'intéressant par rapport à ma recherche alors je viens vous demander si vous connaissez quelque chose dans ce genre.

    j'ai des nouveautés (en réalité des screen de sites web) que je veux faire défiler verticalement (de bas en haut).
    Or je ne veux pas un défilement continu. Une fois ma nouveauté apparue j'aimerai qu'elle se stop quelques instants pour qu'on puisse la regarder, puis elle disparait pour laisser la suivante arriver.
    De plus lorsqu'une nouveauté est affichée, si l'on passe le curseur dessus j'aimerais qu'elle ne disparaisse pas tant qu'on a pas effectué le onmouseout

    si vous connaissez ou avez déjà utilisé un script plus ou moins similaire je suis preneur

    juste pour info j'utilise déjà jQuery pour d'autres chose mais ça n'utilise pas vraiment le comportement que je veux.

    merci de votre aide

  2. #2
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Voici un script qui doit être assez proche de ton besoin, je te laisse
    regarder et poser des questions si tu as de la peine à l'adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    <style type="text/css">
    #newsbox { width: 200px; height: 200px; border: 1px solid black; position: relative; overflow: hidden; }
    #newslist { position: absolute; padding: 0 0.5em; }
    </style>
    <script language="javascript" type="text/javascript">
     
    var pos;
    var speed = 1;
    var pos_initial;
     
    function startAnim() {
    	var e = document.getElementById('newsbox');
    	pos_initial = e.clientHeight + 10;
    	pos = pos_initial;
    	setInterval('anim()', 20);
    }
    function anim() {
    	var e = document.getElementById('newslist');
    	e.style.visibility = 'visible';
    	e.style.top = Math.floor(pos) + 'px';
    	pos = pos - speed;
    	if(pos < -e.clientHeight) pos = pos_initial;
    }
    window.onload = function() {
      var e = document.getElementById('newsbox');
      e.onmouseover = function() { speed = 0; };
      e.onmouseout = function() { speed = 1; };
      startAnim()
    };
    </script>
    </head>
     
    <body>
    <div id='newsbox'>
      <div id='newslist' style='visibility: hidden'>
        <h1>Titre 1</h1>
    	<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in </p>
        <h1>Titre 1</h1>
    	<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in </p>
    	<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in </p>
        <h1>Titre 1</h1>
    	<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in </p>
      </div>
    </div>
    </body>
    </html>

  3. #3
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    merci beaucoup marcha
    c'est exactement le comportement que je recherche, à une chose près c'est que j'aimerai que quand "titre 1" arrive en haut du <div> il se stop quelques secondes de manière à voir la chose (à savoir que pour moi le texte sera remplacé par une image)

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    dans la fonction anim tu peux faire un test sur la variable pos
    et modifier speed à 0 quand le décalage correspond à la hauteur
    de ton image. puis tu lance un setTimeout sur une fonction qui
    remettra speed à 1 après le délai souhaité

  5. #5
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    j'ai pu obtenir ce que je voulais grâce à ton aide

    à la seule chose près que j'aimerai que chaque image se stop or je n'ai que la première
    car j'ai l'impression que le contenu du div est considéré comme un tout et non pas comme des éléments séparés

  6. #6
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Je crois que tu es sur la bonne voie. A mon avis
    c'est juste pos % multiple

    J'ai toujours une crainte sur l'utilisation du modulo
    avec des nombre négatifs. Essaye éventuellement (-pos) % multiple
    ou alors avec Math.abs()

  7. #7
    Membre averti Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Points : 336
    Points
    336
    Par défaut
    j'ai réussi à résoudre mon soucis entre temps
    c'est effectivement pos % multiple
    le négatif est bien gérer donc c'est impec
    j'ai maintenant le comportement que je voulais
    sans jQuery qui plus est !

    énorme merci !

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Ce script me conviendrait parfaitement.
    Cependant, il faut attendre que l'intégralité du texte ait fini de défiler et disparaisse par le haut avant que le début du texte ne réaparaisse par le bas.
    Comme j'envisage une zone de défilement relativement haute, j'aurais souhaité un enchaînement plus rapide.
    J'ai modifié les valeurs de la ligne if(pos < -e.clientHeight) pos = pos_initial;
    mais cela ne me satisfait pas complètement.
    Y'a t'il un moyen d'obtenir un enchaînement sans aucun blanc ?

    Merci par avance de votre aide.

    Cordialement,

    Cédric

  9. #9
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut dalton31, et bienvenu sur le forum.

    Pour éviter le blanc, c'est possible, mais ça se complique. Il faut travailler
    avec deux blocs (clones) placé l'un en dessous de l'autre.

    quand un bloc a complètement disparu, il faut le déplacer en dessous de
    celui qui est en cours d'affichage et ainsi de suite.

  10. #10
    Membre éprouvé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 909
    Points : 1 014
    Points
    1 014
    Par défaut super
    Super l'exemple, dommage qu'il ne fonctionne pas sous Firefox. Je ne pas Opera sur le PC que je squatte donc je n'ai pas pu tester.

    En tout cas sous IE, c'est cool.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 1
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    Citation Envoyé par mdr_cedrick Voir le message
    merci beaucoup marcha
    c'est exactement le comportement que je recherche, à une chose près c'est que j'aimerai que quand "titre 1" arrive en haut du <div> il se stop quelques secondes de manière à voir la chose (à savoir que pour moi le texte sera remplacé par une image)
    Je cherche à avoir la même chose.
    Je débute en jquery et je n'arrive pas à retranscrire vos conseils en JS.
    Quelqu'un peut m'aider?

    Merci

  12. #12
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    J'aurais la même demande que Dalton :
    Y aurais-t-il un moyen d'obtenir un enchaînement sans aucun blanc ?

    Merci.

  13. #13
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    oui, mais il faut 2 copies du contenu défilant.
    quand la copie 1 a entièrement disparu de la zone
    visible (la copie 2 est donc visible) il faut déplacer
    la copie 1 après la copie 2 dans le DOM.

    faire de même avec la copie 2 une fois qu'elle n'est
    plus visible, etc...

  14. #14
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Points : 22 933
    Points
    22 933
    Billets dans le blog
    125
    Par défaut
    Bonjour.

    Marcha avait déjà donné la même réponse dans le message nº 9 : http://www.developpez.net/forums/m4102601-9/

  15. #15
    Membre averti Avatar de bourvil
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : Israël

    Informations forums :
    Inscription : Juin 2002
    Messages : 411
    Points : 329
    Points
    329
    Par défaut
    Moi aussi j'aimerais bien reussir a faire un defillement sans espace, j'ai essayer de faire ce que propose marcha mais c un peu confus.
    Pouvez vous eclaircir tout ca?

    merci d'avance

  16. #16
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Lors d'un défilement il faut placer le bloc à défiler après
    la zone visible, le faire défiler jusqu'à ce qu'il la traverse
    et en ressorte, puis le repositionner après et recommencer
    comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
             [  ]12345
             [ 1]2345         
             [12]345
            1[23]45
           12[34]5
          123[45]
         1234[5 ]
        12345[  ]
             [  ]12345
    Le bloc formant "un seul morceau" on est obligé de laisser une zone
    vide pour lui permettre d'être totalement ressorti avant de le déplacer
    à nouveau dans sa position initiale.

    Pour éviter la zone vide, on clone le bloc pour en faire un jumeau que
    l'on place après lui:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
             [  ]1234512345
             [ 1]234512345         
             [12]34512345
            1[23]4512345
           12[34]512345
          123[45]12345
         1234[51]2345
        12345[12]345
             [12]34512345 * une fois le premier bloc complètement sorti, on le déplace
    voilà, j'espère que c'est plus clair ainsi :-)

    EDIT: on part du principe que la taille de la zone visible est inférieur à la taille du bloc que
    l'on fait défiler (sinon il pourrait être nécessaire de faire plusieurs clones)

  17. #17
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut script avec défilement vertical
    Bonjour,
    merci pour ton explication Marcha,
    J'ai bien compris le fonctionnement, cependant tu ne dit pas comment faire pour cloner une div ?

  18. #18
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    avec cloneNode

  19. #19
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    bonjour mdr_cedrick
    pouvez vous mettre le code complet modifié
    j'ai besoin de la meme chose que toi et j'ai pas réussi a stopper le texte pour quelque instant
    merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. QVBoxLayout avec défilement vertical
    Par Gébix dans le forum Débuter
    Réponses: 1
    Dernier message: 02/06/2012, 17h17
  2. Réponses: 5
    Dernier message: 29/03/2010, 20h24
  3. Table avec une barre de défilement vertical
    Par top_eagle dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 14/10/2009, 13h36
  4. Cherche script pour défilement avec options
    Par Martyin dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2007, 08h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo