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

JavaScript Discussion :

Script défilement images


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut Script défilement images
    Bonjour, j'ai récupéré dans le premier post (meilleurs scripts) le script pour faire défiler des images ou photos.

    Je cherche à la modifier un peu pour afficher les miniatures dans la barre de défilements, et au clic, ouvrir la photo taille réelle.
    Elle ont forcément un nom différent.

    Si vous aviez un éclair...

    Voici le code :

    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>...</title> 
     
    <style type="text/css"> 
    body {margin:0px} 
    img {display:none;position:absolute} 
    /* propriétés de la boîte à images;"position" et "overflow" sont nécessaires;*/ 
    #c {display:none;margin-top:100px;background-color:#ffcc00;position:relative;overflow:hidden;} 
    </style> 
     
    </head> 
     
    <body> 
    <h1 id="mess" style="text-align:center"> 
    Veuillez patienter... 
    </h1> 
    <div id="nul"></div> 
     
    <div style="margin-top:50px;margin-left:50px"> 
    <strong> 
    En passant sur la boîte à images, on décide du sens et de la vitesse de défilement;<br /> 
    En cliquant sur la zone, on stoppe le défilement et on active les liens images;<br/> 
    On peut alors afficher chaque image dans une fenêtre indépendante (pas d'agrandissement ici, 
    ce n'est pas le but);<br /> 
    Si on reclique dans la zone, on relance le défilement; 
    </strong> 
    </div> 
     
    <script type="text/javascript"> 
     
    //|||||||||| 
    //Variables| 
    //|||||||||| 
    var timer,zero,w,lf,el; 
    var tab=new Array(); 
    var pos=0; 
    var val=0; 
    var oui=true; 
     
     
    //|||||||||||||||||||||||| 
    //Variables paramétrables| 
    //|||||||||||||||||||||||| 
    var M=100;// marge de gauche de la boîte à images; 
     
    var W=300;// largeur de la boîte à images 
    // (forcément supérieure à la somme des largeurs des images); 
     
    var H=100;// hauteur de la boîte à images; 
     
    var delai=Math.round(W/4);// le délai initial est d'un quart 
    // de la largeur de la boîte; 
     
     
    //||||||||||||||||||||| 
    //Création de la boîte| 
    //||||||||||||||||||||| 
    var c=document.createElement('div'); 
    c.id="c"; 
    c.style.marginLeft=M+"px"; 
    c.style.width=W+"px"; 
    c.style.height=H+"px"; 
     
    var dec=M+W/2;// position horizontale au centre de la boîte; 
     
     
    //|||||||||||||||||||| 
    //Création des images| 
    //|||||||||||||||||||| 
    for(i=0;i!=60;i++){ 
       zero= i<9 ? 0 : ""; 
       tab[i]=new Image(); 
       tab[i].src="http://javatwist.imingo.net/sm"+zero+(i+1)+".gif"; 
       c.appendChild(tab[i]); 
    } 
    document.body.replaceChild(c,document.getElementById('nul')); 
     
     
    //||||||||||||||||||||||| 
    //Déplacement des images| 
    //||||||||||||||||||||||| 
    function go(){ 
    for(i in tab){ 
       lf=parseInt(tab[i].style.left); 
       w=tab[i].width; 
       tab[i].style.left=lf+val+"px"; 
       if(lf>pos-w){ 
          tab[i].style.left=lf-pos+"px"}; 
       if(lf<W-pos){ 
          tab[i].style.left=lf+pos+"px"}; 
    } 
    timer=setTimeout("go()",delai) 
    } 
     
     
    //|||||||||||||||| 
    //Vitesse et sens| 
    //|||||||||||||||| 
    function speed(e){ 
    el= (!e) ? event.clientX : e.pageX; 
     
    if(el>=dec){ 
       delai=W/2+2-(el-dec);val=2}// val=déplacement 
    else{ 
       delai=W/2-1-(dec-el);val=-2};// val=déplacement 
    } 
     
     
    //|||||||||||||||||||||||| 
    //Gestionnaire de "speed"| 
    //|||||||||||||||||||||||| 
    c.onmousemove=speed; 
     
     
    //||||||||||||||||||||||||||||||||||||||||||||||||| 
    //Pause / relance du script / activation des liens| 
    //||||||||||||||||||||||||||||||||||||||||||||||||| 
    c.onclick=function(){ 
       if(oui){clearTimeout(timer);oui=false; 
          for(i in tab){ 
             tab[i].style.cursor="pointer"}; 
       } 
       else{go();oui=true; 
          for(i in tab){ 
             tab[i].style.cursor="default"}; 
       }; 
    } 
     
     
    //|||||||||||||||||||| 
    //Lancement des liens| 
    //|||||||||||||||||||| 
    for(i in tab){ 
       tab[i].onclick=function(){ 
          if(this.style.cursor=="pointer"){ 
             window.open(this.src)} 
          }; 
    } 
     
    //||||||||||||||||||||||||||||||||||||||||||||||||| 
    //Positionnement des images et lancement du script| 
    //||||||||||||||||||||||||||||||||||||||||||||||||| 
    onload=function(){ 
    document.body.removeChild(document.getElementById("mess")); 
    c.style.display="block"; 
    for(i in tab){ 
    tab[i].style.left=pos+"px"; 
    tab[i].style.top=(H-tab[i].height)/2+"px"; 
    tab[i].style.display="inline"; 
    pos+=tab[i].width; 
    }; 
    go(); 
    } 
     
    </script> 
     
    </body> 
    </html>
    C'est le script de javatwister : http://www.developpez.net/forums/vie...955042#1955042

  2. #2
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    J'ai apporté les modifs suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //|||||||||||||||||||| 
    //Création des images| 
    //|||||||||||||||||||| 
    for(i=1;i!=8;i++){ 
       zero= i<8 ? 0 : ""; 
       tab[i]=new Image(); 
       tab[i].src="tn_"+zero+(i+1)+".jpg"; 
       c.appendChild(tab[i]); 
    } 
    document.body.replaceChild(c,document.getElementById('nul'));
    Changement de dossier + de nom des images sources.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //|||||||||||||||||||| 
    //Lancement des liens| 
    //|||||||||||||||||||| 
     
    for(i in tab){ 
       tab[i].onclick=function(){ 
          if(this.style.cursor=="pointer"){ 
             window.open(zero+i+".jpg")} 
          }; 
    }
    Là, j'ai changé le window.open, mais il me retouve toujours i = 7, donc j'ai toujours l'images 07.jpg qui s'ouvre...

    Quelqu'un a une idée pour retrouver le bon "i" ??

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open(zero+(i-1)+".jpg")}
    :

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonsoir,
    je cherchai le meme genre de script et du coup je voudrai essayer d'adapter celui-là à mon cas:
    je voudrai faire un diaporama tout bete avec une barre dans laquelle les images defilent et quand on clique dessus elles s'affichent dans une div sur la meme page. rien de plus classique
    Le problème est que je ne comprends pas tout (ça c normal je débute en js) et que je ne vois meme pas où sont les images dans le code.
    Si vous avez compris ce que veux dire merci pour la réponse...

  5. #5
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    Citation Envoyé par SpaceFrog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.open(zero+(i-1)+".jpg")}
    :
    Maintenant, il ne m'ouvre que la 6... logique i-1 --> comme i était toujours à 7, maintenant, c'est 6... mais merci... je vais continuer à chercher !

  6. #6
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    Allé, monte petit topic...

    Juste pour relancer votre curiosité... Merci d'avance.

    Toujours aucun succès avec mes photos...

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    ce que je ne comprends pas bien, c'est pourquoi tu as changé le code "popup"

    en appelant la variable i depuis le corps de la fonction, tu obtiendras toujours sa valeur maximale!

    d'où la nécessité de faire appel à l'objet déclencheur par this;

  8. #8
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    C'est à dire ?? Je vois pas comment faire...

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    c'est-à-dire que... il n'y avait rien à faire! juste recopier le code

  10. #10
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    Ton code d'origine ouvrait la même image que celle affichée dans la barre de défilement... moi, je voulais afficher une image réduite de celle qui doit s'ouvrir en cliquant dessus...

  11. #11
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    ah ok;

    donc, tes miniatures sont du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tn_(zero)incrément.jpg;
    et les agrandissements:
    ?

    le principe est le même:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //|||||||||||||||||||| 
    //Lancement des liens| 
    //|||||||||||||||||||| 
     
    for(i in tab){ 
       tab[i].onclick=function(){ 
          if(this.style.cursor=="pointer"){ 
             window.open(this.src.replace("tn_",""))} 
          }; 
    }

  12. #12
    Membre actif Avatar de glloq8
    Inscrit en
    Novembre 2002
    Messages
    298
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Novembre 2002
    Messages : 298
    Points : 255
    Points
    255
    Par défaut
    MERCI !!!

    Franchement, en voyant la réponse, je me demande comment j'y ai pas pensé... ça à l'air tellement simple.

    Moi en fait, je cherchais un moyen d'ouvrir directement, l'images, mais en faisant comme toi, en remplaçant tn_ par rien, ça fonctionne nickel !!

    Encore merci !!

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

Discussions similaires

  1. Recherche un script style "image du jour" ou "citation du jour"
    Par Invité dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 28/08/2006, 22h22
  2. [Cherche] Script texte, image defilante
    Par legillou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/07/2006, 14h28
  3. [Upload] Script upload images
    Par Myriamrv dans le forum Langage
    Réponses: 14
    Dernier message: 07/12/2005, 18h24
  4. [FLASH MX] Problème pour défilement images
    Par Buzhug dans le forum Flash
    Réponses: 10
    Dernier message: 22/10/2004, 21h09

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