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 :

Slide les images se superposent


Sujet :

jQuery

  1. #1
    Membre habitué
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Points : 131
    Points
    131
    Par défaut Slide les images se superposent
    Bonjour,

    Je fais appel a une bdd pour faire défiler les images de classe "slide" avec une animation jQuery

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    <!DOCTYPE html>
     
    <html>
     
    <head>
     
    <meta charset="UTF-8">
     
    <style type="text/css">
    .slide { position: absolute; left: 0px; top: 200px; }
    #img1 {z-index: 1;}
    #img2 {z-index: 2;}
    #img3 {z-index: 3;}
    #img4 {z-index: 4;}
    #img5 {z-index: 5;}
    </style>
     
    <head>
    <body>
     
    <?php
    try{
    $chaine_connexion='mysql:host=localhost;dbname=images_site';
    $utilisation_UFT8=array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8");	
    $connexion_bdd = new PDO($chaine_connexion, 'root', '', $utilisation_UFT8);	
    $connexion_bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e){
    $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
    die($msg);
    }
     
    $sql = 'SELECT * FROM liste_image WHERE slide=?';
    $requete1 = $connexion_bdd ->prepare($sql);
    $requete1->bindValue(1, 'ok', PDO::PARAM_STR);
    $requete1->execute();
    $az=0;
     
    foreach($requete1->fetchAll() as $donnee)
    {
    	$az==$az++;
    	echo utf8_encode('<img src="' . $donnee['type'] . '' . $donnee['numero'] . 'petit.jpg" class="slide" id="img' . $az . '"/>');
    }
    $requete1 -> closeCursor();
    $requete1 = NULL;
    ?>
     
    <script src="jquery.js"></script>
    <script>
    $( function(){ 
     
        var bis = function( ){
            $( '.slide' ).fadeIn( 2000 );
     
            var jObj = $( '.slide:first' );	
     
            jObj.fadeOut( 2000, $.proxy( suivante, jObj ) );
        }
     
     
        var suivante = function( ){
            var jObj = this.next( '.slide' );
     
            if ( jObj.length > 0 ){		
                jObj.fadeOut( 2000, $.proxy( suivante, jObj ) );
            } else {				
                bis();
            }
        }
     
        bis();
    });
    </script>
     
    </body>
     
    </html>
    En regardant le code source de la page, l'appel des images du slide semble fonctionner :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <img src="dessin2petit.jpg" class="slide" id="img1"/>
    <img src="gravure17petit.jpg" class="slide" id="img2"/>
    <img src="monotype 1petit.jpg" class="slide" id="img3"/>
    <img src="gravure41petit.jpg" class="slide" id="img4"/>
    <img src="peinture10petit.jpg" class="slide" id="img5"/>

    Par contre, toutes les images se superposent.
    Avez-vous une solution ?

    Cordialement

  2. #2
    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
    Code CSS : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    .slide { display: none; position: absolute; left: 0px; top: 200px; }
    #img1 {z-index: 1;}
    #img2 {z-index: 2;}
    #img3 {z-index: 3;}
    #img4 {z-index: 4;}
    #img5 {z-index: 5;}

    Code JavaSCript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var jObjSlides = $( '.slide' ),
        n = jObjSlides.length,
        bis = function( ){
            n = ( --n >= 0 ) ? ( n ) : ( jObjSlides.length - 1 );
     
            jObjSlides.eq( n ).fadeIn( 2000, function(){
                $( this ).fadeOut( 2000, bis );
            });
        };
     
    setTimeout( bis, 2000 );

  3. #3
    Membre habitué
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Points : 131
    Points
    131
    Par défaut
    Toutes les images apparaissent en même temps lors du 1er tour ???
    Ensuite: ça marche

  4. #4
    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
    Citation Envoyé par binco Voir le message
    Toutes les images apparaissent en même temps lors du 1er tour
    Impossible avec le "display:none;" !

    Manifestement, le mettre en rouge n'a servi à rien.

  5. #5
    Membre habitué
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Points : 131
    Points
    131
    Par défaut
    Ça marche

    Merci Daniel

    Pouvez vous m'expliquer la ligne
    n = ( --n >= 0 ) ? ( n ) : ( jObjSlides.length - 1 )

    Si n décrémenté est supérieur ou égal à 0 Alors n vaut n Sinon n vaut n-1
    Si le nombre d'image décrémenté est supérieur ou égal à 0 Alors le nombre d'image vaut le nombre d'image Sinon le nombre d'image vaut le nombre d'image moins un

  6. #6
    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
    Au départ, n = jObjSlides.length, donc il faut retirer 1 pour avoir le nombre d'éléments, c'est la raison du --n.

    On calcule ainsi la bonne valeur pour le démarrage et pour la suite du cycle.

    Si --n (n - 1) est égal ou supérieur à zéro, on garde n, sinon n = jObjSlides.length - 1 (le nombre d'éléments).

  7. #7
    Membre habitué
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Points : 131
    Points
    131
    Par défaut
    Daniel y a un truc (subtil) qui m’échappe

    " Au départ, n = jObjSlides.length, donc il faut retirer 1 pour avoir le nombre d'éléments, c'est la raison du --n "

    si j'ai 5 images de classes "slide"
    alors n = jObjSlides.length = 5 donc on a 5 éléments non?
    Donc pourquoi retirer 1 pour avoir le nombre d'éléments (5-1=4 alors qu'on a 5 images)?

  8. #8
    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
    Numérotation des éléments de 0 à x pas de 1 à Y = x + 1.

  9. #9
    Membre habitué
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Points : 131
    Points
    131
    Par défaut Je suis perdu
    Daniel je croix que je me perds

    cas Nbr image .slide eq(index de 0 à x) length(nombre de 1 à x) n-1 (index=length-1)
    cas0 0 image 0 -1
    cas1 1 image 0 1 0
    cas2 2 images 1 2 1
    cas3 3 images 2 3 2
    cas4 4 images 3 4 3
    cas5 5 images 4 5 4

    Si n-1>=0 <=> n>=1 (au moins une image) alors n=n
    Si n-1<0 <=> n<1 ou n=0 (pas d'image) alors n=n-1

Discussions similaires

  1. [D5][SQL Server] Conserver des images dans la BDD
    Par FONKOU dans le forum Bases de données
    Réponses: 8
    Dernier message: 08/06/2008, 19h58
  2. Recherche librairies pour les images
    Par mathieu_t dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 16/08/2004, 21h14
  3. les images dans une base de données
    Par houhou dans le forum Bases de données
    Réponses: 8
    Dernier message: 22/06/2004, 14h27
  4. []filtre sepia pour les images
    Par nabil dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 27/01/2004, 20h41
  5. Des fonctions OGL pour les images de format usuel ?
    Par jamal24 dans le forum OpenGL
    Réponses: 3
    Dernier message: 31/05/2003, 21h59

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