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

Vue hybride

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

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    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 : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    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 éclairé Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    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 : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    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 éclairé Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    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 : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    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
    Invité de passage
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 1
    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

  8. #8
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    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.

  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 : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    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...

  10. #10
    Invité de passage
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 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

  11. #11
    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 : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    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.

  12. #12
    Membre émérite
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    910
    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 : 910
    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.

+ 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