Diaporama

groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008 - 16 mai 2008 à 01:05
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008 - 17 mai 2008 à 12:27
Bonjour à tous !!!

Je viens ici de temps en temps mais je n'ai encore jamais posté !! c ma première fois...chui un peu émue  hé hé !

Alors voila, je suis en train de construire un site assez énorme, et j'avais besoin d'un script très simple qui offrait une gestion des photos encore plus simple ! j'ai trouvé ce script qui correspond totalement à mes besoins :

<script type="text/javascript">
ejs_photo = new Array;
<?
$a = 0;
$handle = opendir("photos");
while (($file = readdir())!=false) {
    clearstatcache();
    if($file!=".." && $file!=".")
        {
        echo "ejs_photo[$a] = 'photos/$file';
";
        $a++;
        }
    }
closedir($handle);
?>   
function ejs_aff_photos(num)
    {
    if(document.getElementById)
        {
        ejs_fin = "";
        if(num!=0)
            ejs_fin += "";
        if(num!=(ejs_photo.length-1))
            ejs_fin += "";
        document.getElementById("ejs_photo_box").innerHTML = "<CENTER>
"+ejs_fin+"</CENTER>";
        }
    }
window.onload = new Function("ejs_aff_photos(0)")

</script>

Tout marche impeccable, j'ai rajouté des boutons avancer/reculer, tout va bien...oui mais...chui un peu chieuse ! J'aimerai dès la première image avoir le bouton "reculer" à l'ecran, de même que j'aimerai voir le bouton"avancer" à la dernière, même si ils sont inactif du  fait qu'il n'y a plus d'images... je ne suis pas contre d'avoir une boucle dans mon diaporama (meme si je prefererais tout de meme éviter)... Pourquoi je veux ça ? parce que le bouton de la premiere image se cale au milieu, et dès la seconde image, il se déplace pour faire de la place au deuxieme bouton...et je trouve ça moche !

Je suis toute débutante depuis trois jours, et je suis un peu paumée....un preux chevalier du javascript pourra-t-il voler à mon secours ???

Merci en tout cas à ceux qui prendront le temps de m'aider !

Si vous voulez voir ce que ça donne pour l'instant : http://www.planete-photo.com/toulouse-photo/basilique_daurade.php
n'allez pas sur les autres pages : elles sont vides !!!! (j'attend de bien caler ma première page afin de faire les autres en séries !)

36 réponses

cs_inaden Messages postés 618 Date d'inscription mercredi 4 avril 2007 Statut Membre Dernière intervention 27 août 2010 2
16 mai 2008 à 09:36
Bonjour,
je suis allé voir le lien que tu donnes, mais il sembleerait qu'il y ait un problème avec les images... aucune ne s'affiche.

Tout vient à qui sait attendre
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
16 mai 2008 à 09:45
Salut, je ne suis pas très fan des scripts qui commencent par 'ejs_', enfin bref...
Si tu veux que les deux boutons restent à l'écran, supprime simplement les conditions d'affichage :

function ejs_aff_photos(num)
    {
    if(document.getElementById)
        {
        ejs_fin = "";
        if(num!=0)
   
        ejs_fin += "";
        if(num!=(ejs_photo.length-1))
   
        ejs_fin += "";
       
document.getElementById("ejs_photo_box").innerHTML =
"<CENTER>
"+ejs_fin+"</CENTER>";
        }
    }

Devient :

function ejs_aff_photos(num)
    {
    if(document.getElementById)
        {
        ejs_fin = "";
   
        ejs_fin += "";
   
        ejs_fin += "";
       
document.getElementById("ejs_photo_box").innerHTML =
"<CENTER>
"+ejs_fin+"</CENTER>";
        }
    }

Et pour la boucle, ajoute cette conditions au début de la fonction :

if(num<0) num =
ejs_photo.length-1;
else if(num>ejs_photo.length-1) num = 0;

Have fun
0
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008
16 mai 2008 à 10:46
Merci beaucoup !!!! Pour la suppression des conditions, j'avais deja essayé, le soucis étant que si l'utilisateur a l'idée bizare de commencer par la fin du diaporama en cliquant direct sur e bouton "précédent", les images ne s'affiche pas (lien brisé des fleches + tof)

donc je suppose que la boucle des photos est obligatoire ? je me demandais si il n'y avais pas un moyen d'afficher la fleche "precedente" dès le début même si elle reste innactive...idem pour la fleche "suivante" une fois arrivé à la dernière photo...

Maintenant si ce n'est pas possible, en effet je ferais la boucle....ton code de boucle je l'ai mis  ici :

if(num<0) num = ejs_photo.length-1;
else if(num>ejs_photo.length-1) num = 0;
function ejs_aff_photos(num)
    {
    if(document.getElementById)
        {
        ejs_fin = "";
            ejs_fin += "<../img src='IMG/JPG/BOUTONS/bouton-precedent.jpg'>";
            ejs_fin += "";
        document.getElementById("ejs_photo_box").innerHTML = "<CENTER>
"+ejs_fin+"</CENTER>";
        }
    }window.onload = new Function("ejs_aff_photos(0)")

mais ça ne fonctionne pas....(je sais je suis très nulle....mais je débute sois indulgent, toi aussi tu es passé par là !) je dois l'avoir ma l placé....help ?

et merci encore !!!!

quand a ta emande inden : je suis confuse hier soir tard dans la nuit g modifié la hierarchie de mon site pour une meilleure gestion et g oublié de mettre le lien réactualisé ici !!! voici :

http://www.planete-photo.com/toulouse-photo/basilique-daurade/basilique_daurade.php
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
16 mai 2008 à 10:57
Bien  le bonjour, avec le bon, lien, c'est mieux ;o)
Deux remarques tout de même :
Il y a une erreur javascript dans la méthode right:
function right()
 {

var msg = "Le bouton droit est désactivé, désolé !";
 if (navigator.appName 'Microsoft Internet Explorer' && event.button 2 )

 {alert(msg);}
    elseif (navigator.appName 'Netscape' && e.which 3)

    {alert(msg);}

  return true;

  }
le mot clef elseif n'éxiste pas, c'est else if
et pour ta boucle :

function ejs_aff_photos(num)
    if(num<0) num = ejs_photo.length-1;
    else if(num>ejs_photo.length-1) num = 0;
    {
    if(document.getElementById)
        {
        ejs_fin = "";
           
ejs_fin += "<../img
src='IMG/JPG/BOUTONS/bouton-precedent.jpg'>";
           
ejs_fin += "";
       
document.getElementById("ejs_photo_box").innerHTML =
"<CENTER>
"+ejs_fin+"</CENTER>";
        }
    }window.onload = new Function("ejs_aff_photos(0)")

c'est dans la méthode ejs_aff_photos qu'il fallait la mettre ;o)

[o-_-o]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008
16 mai 2008 à 10:59
j'ai pas encore testé mais merci à tous ceux qui m'ont aidé !!!! vous êtes des anges et des des preux chevaliers du javascript !!!! héhé !
0
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008
16 mai 2008 à 11:03
bouououououuououh ça marche pas....mon diaporama s'affiche plus du tout......
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
16 mai 2008 à 11:08
Oups sorry !
j'ai copier coller vite fait, il manque l'accolade :

function ejs_aff_photos(num){
    if(num<0) num = ejs_photo.length-1;
    else if(num>ejs_photo.length-1) num = 0;
   
    if(document.getElementById)
        {
        ejs_fin = "";
           
ejs_fin += "<../img
src='IMG/JPG/BOUTONS/bouton-precedent.jpg'>";
           
ejs_fin += "";
       
document.getElementById("ejs_photo_box").innerHTML =
"<CENTER>
"+ejs_fin+"</CENTER>";
        }
    }window.onload = new Function("ejs_aff_photos(0)")

Sorrrrrry

[o-_-o]
0
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008
16 mai 2008 à 11:12
trop fort ça marche !!!!!!!!! trop bien !!!!! MMMMERCCCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII (hurlement primaire de joie absolue et totale !)

Sinon, il n'y avait pas moyen de figer le bouton comme je l'avais demandé ? (mais la boucle c cool, si c po possible, ça me va tres bien !!!! je suis en joie !!!!
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
16 mai 2008 à 11:35
donc, le but, est de ne pas faire défiler les photos en boucles mais de toujours avoir les boutons de défilement, pas trop compliqué à faire ;o)

function ejs_aff_photos(num){
    if(document.getElementById)
        {
        ejs_fin = "";
           
ejs_fin += "<../img
src='IMG/JPG/BOUTONS/bouton-precedent.jpg'>";
           
ejs_fin += "";
       
document.getElementById("ejs_photo_box").innerHTML =
"<CENTER>
"+ejs_fin+"</CENTER>";
        }
    return false;
    }

window.onload = new Function("ejs_aff_photos(0)")

et hop

les boutons sont bien la, seulement, si l'on clique sur précedent sur la première image, rien ne se passe !
idem pour le bouton suivant sur la dernière image

[o-_-o]
0
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008
16 mai 2008 à 11:36
vous etes trop fort........
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
16 mai 2008 à 11:40
Re,

Pour figer le bouton, remplace la condition pour la boucle par :

if(num<0 || num>ejs_photo.length-1) return false;

Ce qui donne :

function ejs_aff_photos(num)
    {
    if(num<0 || num>ejs_photo.length-1) return false;
    if(document.getElementById)
        {
        ejs_fin = "";
   
        ejs_fin += "";
       
    ejs_fin += "";
       
document.getElementById("ejs_photo_box").innerHTML =
"<CENTER>
"+ejs_fin+"</CENTER>";
        }
    }
0
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008
16 mai 2008 à 12:09
c super ça marche super bien !!!! merci à tous !!!

Petit conseil esthetique maintenant : vous trouvez ça plus interressant de le figer ou de le mettre en boucle ? j'ai un gros dote maintenant que j'ai le choix !!
0
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008
16 mai 2008 à 12:19
parce qu'en fait ce qui me derangeais c juste qu'au debut, le fait qu'i n'y ai qu'une fleche, la plaçait au milieu des photos, et apres avoir cliqué dessus, ça la deplacait ailleurs etant donné l'arrive de la deuxeime fleche...(je sais pas si je suis tres clair....)est-ce qu'il n'est pas possible de la figer des le debut a la bonne place quand l'autre fleche n'est pas encore visible ? de cette maniere, l'internaut sait quand il n'y a plus de photo (du fait de la disparition de la fleche "suivante") mais au niveau du graphisme ça chie pas parce que la fleche restante reste à la meme place ! vous comprenez ?

Pitetre qu'on peut changer le bouton qui doit disparaitre en un bouton tout noir ? (vu que mon fond est noir)
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
16 mai 2008 à 12:21
Pour ma part, j'aurais laisser la boucle, vu qu'il y a toujours le bouton "précedent",  c'est un peu déstabilisant pour un utilisateur de voir un bouton, de cliquer dessus ( bah, oui, y a un bouton, il faut donc cliquer dessus sinon, il n'y aurait pas de bouton) et que rien ne se passe !
Après c'est aussi en fonction de ton site, donc, la balle est dans ton camps ;o)

[o-_-o]
0
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008
16 mai 2008 à 12:23
c sur, maintenant que g testé les deux soluces, je trouve egalement cela un peu destabilisant....

Et donc pourma derniere question tu vois pas de soluce ? sinon, je pense en effet que je vais laisser la boucle ! (mais au moins je serais grace à vous figer des boutons !)
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
16 mai 2008 à 12:26
Croisement de message, pourquoi ne pas faire deux images noires (ayant la même taille que les flêches)!
puis en adaptant la méthode

function ejs_aff_photos(num)
    {
    var previous = "bouton-precedent.jpg";
    var next = "boutons-suivant.jpg";
    if(num==0 ) {
        previous = "black.jpg";
    }
    if ( num>ejs_photo.length-1)
        next = "black.jpg";
       
    // retourne faut au cas ou un utilisateur à cliquer sur l'image noire trop fort l'utilisateur...
    if(num==0 )|| num>ejs_photo.length-1) return false;
   
    if(document.getElementById)
        {
        ejs_fin = "";
            ejs_fin += "";
            ejs_fin += "";
        document.getElementById("ejs_photo_box").innerHTML = "<CENTER>
"+ejs_fin+"</CENTER>";
        }
    }

et comme ça les flêches devrait être bien posistioner ( non tester, han, le vilain que je suis )

[o-_-o]
0
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008
16 mai 2008 à 12:28
super !!!! (comme quoi g po de mauvaise idée ! c juste l'ecriture qui me pose probleme pour l'instant !!) je vais tester et je reviens te dire !
0
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008
16 mai 2008 à 12:46
non ca me decale mes boutons hors du diaporama ... (tiens pour mieux comprendre : http://www.planete-photo.com/toulouse-photo/basilique-daurade/basilique_daurade.php
et mes images n'aparaissent plus...
http://www.planete-photo.com/toulouse-photo/basilique-daurade/basilique_daurade.php
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
16 mai 2008 à 12:51
Comme je l'ai dis, je suis vilain ;o)

function ejs_aff_photos(num)
    {
    var previous = "bouton-precedent.jpg";
    var next = "boutons-suivant.jpg";
    if(num==0 ) {
        previous = "black.jpg";
    }
    if ( num>ejs_photo.length-1)
        next = "black.jpg";
       
    // retourne faut au cas ou un utilisateur à cliquer sur l'image noire trop fort l'utilisateur...
    if(num==0 || num>ejs_photo.length-1) return false;
   
    if(document.getElementById)
        {
        ejs_fin = "";
           
ejs_fin += "firebug, il indique bien ou sont les erreurs !

[o-_-o]
0
groseline Messages postés 27 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 18 mai 2008
16 mai 2008 à 12:56
tiens merci pour le tuyau du module (bien sur que j'utilise firefox menfin !)

mais ça change rien ta modif....ca me donne toujours un truc chelou...tiens je te file le code, tel que je l'ai tapé ds mon fichier :

<script type="text/javascript">
ejs_photo = new Array;
<?
$a = 0;
$handle = opendir("photos");
while (($file = readdir())!=false) {
    clearstatcache();
    if($file!=".." && $file!=".")
        {
        echo "ejs_photo[$a] = 'photos/$file';
";
        $a++;
        }
    }
closedir($handle);
?>   

function ejs_aff_photos(num)
    {
    var previous = "9.gif";
    var next = "10.gif";
    if(num==0 ) {
        previous = "black-precedent.gif";
    }
    if ( num>ejs_photo.length-1)
        next = "black-suivant.gif";
      
    // retourne faut au cas ou un utilisateur à cliquer sur l'image noire trop fort l'utilisateur...
   if(num==0 || num>ejs_photo.length-1) return false;
  
    if(document.getElementById)
        {
        ejs_fin = "";
            ejs_fin += "";
            ejs_fin += "";
        document.getElementById("ejs_photo_box").innerHTML = "<CENTER>
"+ejs_fin+"</CENTER>";
        }
    }window.onload = new Function("ejs_aff_photos(0)")</script>

pitetre c moi qui a force de bidouiller, gatouille complet..apres tout c ossible !!!

Rose

Ps : meuh non t po un vilain, je te l'ai deja dit : t un preux chevalier !!!
0
Rejoignez-nous