Amélioration javascript : variable dans l'url [Résolu]

Signaler
Messages postés
10
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
14 juillet 2008
-
Messages postés
10
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
14 juillet 2008
-
Bonjour à toutes et tous,


J'ai pu récupérer un petit script sur le net qui permet d'afficher des
images successivement l'une à la place de l'autre. Le souci c'est que
la définition de ces images se fait à la suite, de la façon suivante :

i0 = new Image;

i0.src = 'http://www.monsiteweb.fr/img_random/0.jpg';

SiClickGoTo[0] = "http://photos.monsiteweb.fr/";

imgPath[0] = i0.src;

i1 = new Image;

i1.src = 'http://www.monsiteweb.fr/img_random/1.jpg';

SiClickGoTo[1] = "http://photos.monsiteweb.fr/";

imgPath[1] = i1.src;


Ayant pas mal de connaissances en Java, je me suis aperçu que le
langage était ressemblant, et cela a été confirmé lorsque j'ai vu la
structure de la boucle "for" qui est identique. Du coup je souhaitais
améliorer ce script qui marche bien pour un petit nombre d'image, mais
qui devient vite lassant pour un grand nombre. Voici ce que j'ai pondu :

for (int i=0 ; i<=10 ; i++) {

var test_src = "'http://www.monsiteweb.fr/img_random/" + i + ".jpg'";

img = new Image;

img.src = test_src;

SiClickGoTo[i] = "http://photos.monsiteweb.fr/";

imgPath[i] = img.src;

}


Mais ça marche pas ... snif !

Quelqu'un aurait une idée ?

14 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
fallait lire :

    document.getElementById("aff");
</strike>    var ind=-1;
    var max=9;
    affiche();
</script>
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
pas un spécialiste ( là non plus ! )

border c'est du html,
style="border..." du css et plus "dans l'air l'air du temps"... aujourd'hui !
encore plus prisé si on utilise avec class="toto" avec .toto {...}
ou même img {...}, et là sans class, directement, dans <style ....>

>>c'était plus que simple du coup
nous avons tous souvent tendance à compliquer... inutilement,

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

ce que tu nous montres c'est un "préchargement" d'images
( pas vérifié d'ailleurs si ça baigne ou pas, mais surtout,
  ce n'est que mon avis, c'est totalement inutile, et même
  nuisible !)
par contre, l'affichage de ces images, on ne voit pas.
de deux choses l'une ( l'autre c'est le soleil comme dit monsieur Prévert )
soit tu nous montres comment tu affiches ( enfin, UN EXTRAIT, le
       nécessaire mais pas plus ! )
soit tu recherches dans le forum, les sources... ce qui cause de
      "diaporama" par exemple, foultitudes de réponses

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
10
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
14 juillet 2008

Pas de souci je peux montrer le bout qui affiche.
Comme je disais c'est un script que j'ai récupéré sur le net, donc il n'est pas de moi. Et puis les images sont miniscules (2ko chacunes) car ce sont des miniatures de 128*96px. Voici ce que ça donne actuellement (avec la déclaration des images une à une) :
www.flocool.fr

Sinon voici le bout de code :
if (version >= 3)
        {
        document.defil.src = imgPath[a];
        tempo3 = setTimeout("defilimg()",3000);
        a++;
        }
    }
Messages postés
10
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
14 juillet 2008

Sachant que le début du script commence par ça :

imgPath = new Array;
SiClickGoTo = new Array;
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
j'arrive pas à exécuter, "ça plante de partout" :
version, defil.src, defilimg()...tout ça ne plait pas à mes différents navigateurs
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
10
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
14 juillet 2008

Voici le script entier (qui marche chez moi donc)

<SCRIPT LANGUAGE="JavaScript">
imgPath = new Array;
SiClickGoTo = new Array;
version = navigator.appVersion.substring(0,1);
if (version >= 3)
    {
    i0 = new Image;
    i0.src = 'http://www.flocool.fr/serendipity/img_random/0.jpg';
    SiClickGoTo[0] = "http://www.flocool.fr/photos.html";
    imgPath[0] = i0.src;
    i1 = new Image;
    i1.src = 'http://www.flocool.fr/serendipity/img_random/1.jpg';
    SiClickGoTo[1] = "http://www.flocool.fr/photos.html";
    imgPath[1] = i1.src;
    i2 = new Image;
    i2.src = 'http://www.flocool.fr/serendipity/img_random/2.jpg';
    SiClickGoTo[2] = "http://www.flocool.fr/photos.html";
    imgPath[2] = i2.src;
    i3 = new Image;
    i3.src = 'http://www.flocool.fr/serendipity/img_random/3.jpg';
    SiClickGoTo[3] = "http://www.flocool.fr/photos.html";
    imgPath[3] = i3.src;
    i4 = new Image;
    i4.src = 'http://www.flocool.fr/serendipity/img_random/4.jpg';
    SiClickGoTo[4] = "http://www.flocool.fr/photos.html";
    imgPath[4] = i4.src;
    i5 = new Image;
    i5.src = 'http://www.flocool.fr/serendipity/img_random/5.jpg';
    SiClickGoTo[5] = "http://www.flocool.fr/photos.html";
    imgPath[5] = i5.src;
    i6 = new Image;
    i6.src = 'http://www.flocool.fr/serendipity/img_random/6.jpg';
    SiClickGoTo[6] = "http://www.flocool.fr/photos.html";
    imgPath[6] = i6.src;
    i7 = new Image;
    i7.src = 'http://www.flocool.fr/serendipity/img_random/7.jpg';
    SiClickGoTo[7] = "http://www.flocool.fr/photos.html";
    imgPath[7] = i7.src;
    i8 = new Image;
    i8.src = 'http://www.flocool.fr/serendipity/img_random/8.jpg';
    SiClickGoTo[8] = "http://www.flocool.fr/photos.html";
    imgPath[8] = i8.src;
    i9 = new Image;
    i9.src = 'http://www.flocool.fr/serendipity/img_random/9.jpg';
    SiClickGoTo[9] = "http://www.flocool.fr/photos.html";
    imgPath[9] = i9.src;
    }
a = 0;
function StartAnim()
    {
    if (version >= 3)
        {
        document.write('[# ]');
        defilimg()
        }
    else
        {
        document.write('http://www.flocool.fr/photos.html')
        }
    }
function ImgDest()
    {
    document.location.href = SiClickGoTo[a-1];
    }
function defilimg()
    {
    if (a == 10)
        {
        a = 0;
        }
    if (version >= 3)
        {
        document.defil.src = imgPath[a];
        tempo3 = setTimeout("defilimg()",3000);
        a++;
        }
    }
StartAnim();
</SCRIPT>
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
ce que tu tentes, si je comprends bien, c'est afficher 0.png à 9.png
    automatiquement avec un ch'tiot temps d'attente entre chaque image ?

http://... si nécessaire !
il reste peut-être à attendre si l'image précédente est effectivement affichée ?
on en cause ici et là.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
10
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
14 juillet 2008

Ah oui en effet ça marche pas mal ^^
Ben un grand merci alors, et c'est sûr que c'est beaucoup plus soft. J'avais peur que les images se chargent bizarrement (comme j'avais vu sur un autre script).

Par contre comment faire pour rajouter un lien unique en direction d'une page si on clique sur les photos ? (et de préférence avec border="0" pour plus d'esthétisme)
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
[lien unique.??? Bul         []mon Site]     [M'écrire]
Messages postés
10
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
14 juillet 2008

Ah ben oui j'avais oublié qu'il y avait la balise de l'image juste au-dessus ... autant pour moi, c'était plus que simple du coup !
"Lien unique" c'était bien dans le sens "une seule destination".

Juste une question technique : quelle est la différence entre la définition de la bordure avec border="0" ou style="border:0" (s'il y a une différence) ?
J'imagine que le 2e est utile si on a des CSS, ainsi on peut le définir dedans.
Pour ma part c'est un petit script qui est situé dans une page style "wordpress" comme tu as pu le voir d'ailleurs.

En tout cas merci encore !! Au moins j'ai juste un paramètre à changer si je veux rajouter des images.
Messages postés
10
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
14 juillet 2008

Ben je m'y connaitrais vraiment en langage Javascript (qui doit pas etre plus compliqué que le java mais je n'ai aps spécialement le temps de m'y mettre), j'aurai pu écrire le script tout seul, mais là du coup j'ai cherché sur le net, donc on prend ce qu'on trouve ^^

Oki pour la réponse du "border". Il est vrai que les CSS c'est la mode en ce moment, et ça se comprend sans souci.
Encore une fois merci énormément !
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
javascript ? c'est un langage. ni plus ni moins compliqué que les autres ( quoique... ;o)
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
10
Date d'inscription
mardi 1 juillet 2003
Statut
Membre
Dernière intervention
14 juillet 2008

Oui je sais que c'est un langage, et étant donné que j'ai reconnu la même syntaxe que Java pour lequel on nous a un peu formé à mon école d'ingé, je pense que je m'y ferai sans trop de difficulté. Après c'est juste qu'il est appliqué à des choses bien précises, et c'est ce qu'il utilise que je ne connais pas forcément.