begin process at 2012 05 29 08:11:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

diaporama javascript avec un lien pour chaque image


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

diaporama javascript avec un lien pour chaque image

mercredi 10 décembre 2008 à 11:04:49 | diaporama javascript avec un lien pour chaque image

feldrik

Bonjour, je bute sur un problème depuis des jours, et espère trouver sur ce forum une âme charitable pour me tirer de ce mauvais pas. Je veux faire un diaporama (sous dreamweaver) placé dans une div, avec un lien pour chaque image. J'ai trouvé moults scripts, en ai testé autant, mais sans jamais parvenir au résultat escompté (oui, attention, amateur).
J'aimerais, si possible, que l'on me guide pour que je puisse conserver la base de ce diaporama sympa, tout en accolant un lien à chaque image. Celui qui me tire de ce mauvais pas aura droit à toute ma cyber-estime !

voici le code du diaporama que je voudrais garder :

<head>

/* BOITE DU DIAPORAMA */
        #boite_diapo {      position:absolute;
                            width:205px;
                            height:100px;
                            top:0px;
                            left:31px;
                            background-color:none;
                            background-image:url(zi/b_rf_001_renard_polaire.jpg);} /* IL FAUT IMPERATIVEMENT QUE LE NOM DE L'IMAGE SOIT IDENTIQUE A CELUI DANS LE SCRIPT : tab_img[0]
                           
        /* image dans la boite du diaporama */                           
        #img_diapo  {       width:205px;
                            height:100px;
                            filter: alpha(opacity=0);   /* fondu pour internet explorer */
                            -moz-opacity:0;             /* fondu pour mozilla, phoenix, firebird, firefox*/
                            opacity:0;                  /* fondu pour mozilla firefox */
                            -khtml-opacity:0.5;         /* fondu pour konqueror et safari */
                            background-color:none;}
 
-->
</style>
<script language="javascript">
var imagesTodisplay = new Array;
 var num=0; 
imagesTodisplay[0] = "zi/b_rf_001_renard_polaire.jpg";// TOUJOURS COMMENCER PAR imagesTodisplay[0]
imagesTodisplay[1] = "zi/b_rf_002_cheval-przewalski.jpg";
imagesTodisplay[2] = "zi/b_rf_003_renne.jpg";
imagesTodisplay[3] = "zi/b_rf_004_boeuf_musque.jpg";
   var tab_img = new Array;    //tableau contenant les images
                       //numéro de l'image jouée
 
        //Ajout d'un compte à rebours afin de jouer le diaporama
        var timer_diapo=setInterval("diaporama('boite_diapo','img_diapo',500)",4000);
 
        /* Explication des paramètres
 
        'boite_diapo' : identifiant de la boite du diaporama. NE PAS MODIFIER
        'img_diapo'   : identifiant de l'image contenu dans la boite diaporama. NE PAS MODIFIER.
        500           : temps (en milliseconde) de l'effet fondu entre 2 images. 1 seconde = 1000 millisecondes.
        7000          : interval de temps entre 2 images. 1 seconde = 1000 millisecondes.
       
        */
 
        //Fonction qui permet de jouer le diaporama
        function diaporama(divid, imageid, millisec)
        {
            var speed = Math.round(millisec / 100);
            var timer = 0;
         
            document.getElementById(divid).style.backgroundImage = "url(" + imagesTodisplay[num] + ")";
 
            changeOpac(0, imageid);
 
            if (num>(imagesTodisplay.length-2))
            {num = -1;}
 
  document.getElementById(imageid).style.backgroundImage = "url(" + imagesTodisplay[num+1] + ")";
          
           for(i = 0; i <= 100; i++)
     {
                setTimeout("changeOpac(" + i + ",'" + imageid+ "')",(timer * speed));
                timer++;
           }
           
        
          num++;
 
        }
      
        //Fonction qui attribue l'opacité à l'objet "image_diapo"
        function changeOpac(opacity, id)
        {
            var object = document.getElementById(id).style;
            object.opacity = (opacity / 100);
            object.MozOpacity = (opacity / 100);
            object.KhtmlOpacity = (opacity / 100);
            object.filter = "alpha(opacity=" + opacity + ")";
        }

type="text/javascript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
</head>
<body>

 <div id="boite_diapo">
        <div id="img_diapo"></div>
    </div>

</body>
</html>


J'attends vos réponses avec impatience,

Merci d'avance !

mercredi 10 décembre 2008 à 18:53:25 | Re : diaporama javascript avec un lien pour chaque image

PetoleTeam

Membre Club
Bonjour,
utilises l'événement onclick sur le DIV qui contient ton image en arrière plan.
;O)
mercredi 10 décembre 2008 à 19:16:25 | Re : diaporama javascript avec un lien pour chaque image

feldrik

Bonjour et merci de ta réponse.

En fait, quand je place un événement onclick dans la div contenant l'image d'arrière plan, le lien n'est effectif que pour cette image d'arrière plan, quelle que soit l'image qui défile. Ce que je voudrais, c'est que chaque image qui défile ait son propre lien (image1/lien1, image2/lien2, imageetc./lienetc.), en plaçant des lignes directement dans le script. En quelque sorte, donner une propriété lien à chaque image pour que lorsque l'on clique dessus, on active ce lien.

Merci ;z)

mercredi 10 décembre 2008 à 19:39:24 | Re : diaporama javascript avec un lien pour chaque image

PetoleTeam

Membre Club
un truc de ce style devrait pourtant faire l'affaire

  var O_Div = document.getElementById(divid);
  var szImage = imagesTodisplay[num];
  O_Div.style.backgroundImage = "url(" + szImage + ")";
  O_Div.onclick = function(){ alert( szImage)}


;O)
mercredi 10 décembre 2008 à 19:42:41 | Re : diaporama javascript avec un lien pour chaque image

feldrik

Ok, je vais essayer de suite et je reviens pour dire si ça marche. Merci !
mercredi 10 décembre 2008 à 19:50:55 | Re : diaporama javascript avec un lien pour chaque image

feldrik

En fait, je ne sais pas où et comment associer des url aux différents imagesTodisplay[num]
mercredi 10 décembre 2008 à 19:58:55 | Re : diaporama javascript avec un lien pour chaque image

PetoleTeam

Membre Club
tu peux par exemple
associer un équivalent URL pour chaque imagesTodisplay[0]
var URL_ToDisplay = new Array();
var IMG_ToDisplay = new Array();
var i=0;
URL_ToDisplay[i]   = "images_00.jpg";
IMG_ToDisplay[i++] = "page_00.html";
URL_ToDisplay[i]   = "images_01.jpg";
IMG_ToDisplay[i++] = "page_01.html";
URL_ToDisplay[i]   = "images_02.jpg";
IMG_ToDisplay[i++] = "page_02.html";

et dans la fonction plus loin tu utilises num comme index des deux tableaux.
;O)
mercredi 10 décembre 2008 à 20:20:20 | Re : diaporama javascript avec un lien pour chaque image

feldrik

Bien, je te remercie de ta patience,

Pour le moment, si je comprends bien, j'ai un tableau avec des images :

var imagesTodisplay = new Array;
 var num=0; 
imagesTodisplay[0] = "zi/b_rf_001_renard_polaire.jpg";
imagesTodisplay[1] = "zi/b_rf_002_cheval-przewalski.jpg";
imagesTodisplay[2] = "zi/b_rf_003_renne.jpg";
imagesTodisplay[3] = "zi/b_rf_004_boeuf_musque.jpg";


un tableau avec les correspondances images/url :

var URL_ToDisplay = new Array();
var IMG_ToDisplay = new Array();
var i=0;
URL_ToDisplay[i]   = "zi/b_rf_001_renard_polaire.jpg";
IMG_ToDisplay[i++] = "zoomfaune001_renard_polaire_alopex_lagopus.html";
URL_ToDisplay[i]   = "zi/b_rf_002_cheval-przewalski.jpg";
IMG_ToDisplay[i++] = "zoomfaune002_cheval_przewalski_equus_przewalskii.html";
URL_ToDisplay[i]   = "zi/b_rf_003_renne.jpg";
IMG_ToDisplay[i++] = "zoomfaune003_renne_caribou_rangifer_tarandus.html";
URL_ToDisplay[i]   = "zi/b_rf_004_boeuf_musque.jpg";
IMG_ToDisplay[i++] = "zoomfaune004_boeuf_musque_ovibos_moschatus.html";


Et cette commande qui devrait me permettre l'exécution de l'évènement onclick :


  var O_Div = document.getElementById(divid);
  var szImage = imagesTodisplay[num];
  O_Div.style.backgroundImage = "url(" + szImage + ")";
  O_Div.onclick = function(){ alert( szImage)}


En l'état et par rapport au code de départ, je sens que j'ai des éléments à remplacer pour que le tout fonctionne, mais je ne sais pas lesquels...  

mercredi 10 décembre 2008 à 20:29:13 | Re : diaporama javascript avec un lien pour chaque image

PetoleTeam

Membre Club
Il faut que tu mettes les URL dans le tableau URL_ToDisplay[]
URL_ToDisplay[i++] = "zoomfaune001_renard_polaire_alopex_lagopus.html";
par exemple.

Le tableau IMG_ToDisplay[] est en fait celui que tu as déclaré sous le nom de imagesTodisplay[], donc n'en garde qu'un des deux.

Cela peut donner en final
  var O_Div = document.getElementById(divid);
  var szLien  = URL_ToDisplay[num];
  var szImage = imagesTodisplay[num];

  O_Div.style.backgroundImage = "url(" + szImage + ")";
  O_Div.onclick = function(){ alert( szLien)}


;O)
mercredi 10 décembre 2008 à 20:53:13 | Re : diaporama javascript avec un lien pour chaque image

feldrik

Encore merci, mais je vais faire mon Colombo... je comprends la logique, mais en l'état, le diaporama ne se lance plus (image arrière-plan fixe) et les liens ne sont pas actifs.

Je te place le code obtenu :

<!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=utf-8" />
<meta name="robots" content="index, follow, all" />
<meta name="author" content="Feldrik Rivat" />
<meta name="description" content="Aquarelles et gouaches animalières entrant dans le cadre de travaux de mise en valeur du patrimoine naturel." />
<meta name="keywords" CONTENT="renard polaire, alopex lagopus, feldrik rivat, peintre naturaliste, peintre animalier, portrait animalier, aquarelle naturaliste, gouache naturaliste " />
<title>Patrimoine naturel, aquarelles et gouaches animalières, le renard polaire, Feldrik Rivat</title>
<style type="text/css">
<!--
body {
  margin : 0;
  padding : 0;
  text-align : center;     /* c'est ça qui centre dans IE */
  background-color: #000000;}
#conteneur {
  position : relative;
  margin : 0 auto;          /* c'est ça qui centre dans les autres */
  padding : 0;
  text-align : left;
  width : 890px; }
.Style47 {color: #E38B31}
.Style53 {color: #FFF89D}
#apDiv72 {
 position:absolute;
 left:0px;
 top:154px;
 width:197px;
 height:567px;
 z-index:1;
}
#apDiv73 {
 position:absolute;
 left:425px;
 top:750px;
 width:52px;
 height:27px;
 z-index:2;
 border-bottom-width: 1px;
 border-bottom-style: solid;
 border-bottom-color: #FFF89D;
}
#apDiv75 {
 position:absolute;
 left:740px;
 top:765px;
 width:159px;
 height:35px;
 z-index:3;
}
.Style60 {color: #FFF89D;
 font-size: 13px;
}
.Style61 {color: #FFFFFF}

/* BOITE DU DIAPORAMA */
        #boite_diapo {      position:absolute;
                            width:205px;
                            height:100px;
                            top:0px;
                            left:31px;
                            background-color:none;
                            background-image:url(zi/b_rf_001_renard_polaire.jpg);} /* IL FAUT IMPERATIVEMENT QUE LE NOM DE L'IMAGE SOIT IDENTIQUE A CELUI DANS LE SCRIPT : tab_img[0]
                           
        /* image dans la boite du diaporama */                           
        #img_diapo  {       width:205px;
                            height:100px;
                            filter: alpha(opacity=0);   /* fondu pour internet explorer */
                            -moz-opacity:0;             /* fondu pour mozilla, phoenix, firebird, firefox*/
                            opacity:0;                  /* fondu pour mozilla firefox */
                            -khtml-opacity:0.5;         /* fondu pour konqueror et safari */
                            background-color:none;}
  
 
-->
</style>
<script language="javascript">
var imagesTodisplay = new Array;
 var num=0
imagesTodisplay[0] = "zi/b_rf_001_renard_polaire.jpg";// TOUJOURS COMMENCER PAR imagesTodisplay[0]
imagesTodisplay[1] = "zi/b_rf_002_cheval-przewalski.jpg";
imagesTodisplay[2] = "zi/b_rf_003_renne.jpg";
imagesTodisplay[3] = "zi/b_rf_004_boeuf_musque.jpg";
    //tableau contenant les images
                       //numéro de l'image jouée

var URL_ToDisplay = new Array();
 var numo=0;
URL_ToDisplay[0]   = "zoomfaune001_renard_polaire_alopex_lagopus.html";
URL_ToDisplay[1]   = "zoomfaune002_cheval_przewalski_equus_przewalskii.html";
URL_ToDisplay[2]   = "zoomfaune003_renne_caribou_rangifer_tarandus.html";
URL_ToDisplay[3]   = "zoomfaune004_boeuf_musque_ovibos_moschatus.html";

  var O_Div = document.getElementById(divid);
  var szLien  = URL_ToDisplay[numo];
  var szImage = imagesTodisplay[num];
 
  O_Div.style.backgroundImage = "url(" + szImage + ")";
  O_Div.onclick = function(){ alert( szImage)}
 
        //Ajout d'un compte à rebours afin de jouer le diaporama
        var timer_diapo=setInterval("diaporama('boite_diapo','img_diapo',500)",4000);

        /* Explication des paramètres
 
        'boite_diapo' : identifiant de la boite du diaporama. NE PAS MODIFIER
        'img_diapo'   : identifiant de l'image contenu dans la boite diaporama. NE PAS MODIFIER.
        500           : temps (en milliseconde) de l'effet fondu entre 2 images. 1 seconde = 1000 millisecondes.
        7000          : interval de temps entre 2 images. 1 seconde = 1000 millisecondes.
       
        */
 
        //Fonction qui permet de jouer le diaporama

        function diaporama(divid, imageid, millisec)
        {
            var speed = Math.round(millisec / 100);
            var timer = 0;
         
            document.getElementById(divid).style.backgroundImage = "url(" + imagesTodisplay[num] + ")";
 
            changeOpac(0, imageid);
 
            if (num>(imagesTodisplay.length-2))
            {num = -1;}
 
  document.getElementById(imageid).style.backgroundImage = "url(" + imagesTodisplay[num+1] + ")";
          
           for(i = 0; i <= 100; i++)
     {
                setTimeout("changeOpac(" + i + ",'" + imageid+ "')",(timer * speed));
                timer++;
           }
           
        
          num++;
 
        }
      
        //Fonction qui attribue l'opacité à l'objet "image_diapo"
        function changeOpac(opacity, id)

        {
            var object = document.getElementById(id).style;
            object.opacity = (opacity / 100);
            object.MozOpacity = (opacity / 100);
            object.KhtmlOpacity = (opacity / 100);
            object.filter = "alpha(opacity=" + opacity + ")";
        }

 
type="text/javascript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
</head>
<body>
<div id="conteneur">
<div id="apDiv72"><a href="rf_realisation_001.html"><img src="zi/r_faune_001_renard_polaire_z.jpg" alt="renard polaire, renard isatis ou renard bleu, Alopex lagopus" title="renard polaire, renard Isatis ou renard bleu, Alopex lagopus" width="900" height="561" border="0" /></a></div>
<div id="apDiv73">
  <div align="center"><a href="rf_realisation_001.html"class="Style47 Style53"style="text-decoration:none;"onmouseover="this.style.color='#FFFFFF'" onmouseout="this.style.color='#FFF89D'">Retour</a></div>
</div>
<div id="apDiv75"><a href="galerie_en_ligne.html" class="Style60 Style61"style="text-decoration:none;">A tout instant, vous pouvez visiter ma : </a><a href="galerie_en_ligne.html" class="Style60">Galerie en ligne</a></div>
 <div id="boite_diapo" >
        <div id="img_diapo"></div>
  </div>

</div>
</body>
</html>

Voilà, je ne vois pas où interviennent les conflits... l'index num ? Et je ne vois pas pourquoi les liens ne s'activent pas.


1 2 3

Cette discussion est classée dans : image, var, diaporama, opacity, imagestodisplay


Répondre à ce message

Sujets en rapport avec ce message

Diaporama image avec fondu enchainé, lien vers page, etdiapo suit scroll de page [ par nonosims ] salut a tous, je viens vous solliciter pour vous expliquer mon problème. Débutant en script, j'essaye de mettre en place, un bandeau vertical à droite galerie simple avec image grossissante au survol et replacement auto [ par The Pooh ] Bonjour à tous. peut être que ce topic existe déjà (cela ne m'étonnerai pas :) mais je ne lai pas trouvé. Voilà j'ai ce script avec ses variable que redimensionner une image [ par xzonz ] bonjour a toutes et tous [^^clinoeil1] voila ma question: j'ai une page toute simple (pour le moment) sur laquelle il y a des liens pointant vers de help!Diaporama ou mur d image [ par ameliecuisine ] Bonjour, Voila je voudrais creer un diaporama d'image ou un mur d image avec pour chaque image une legende et un lien vers un site internet . Je voudr Positionnement par rapport à l'écran [ par Tiish ] Bonjour,Plutôt débutant, je tente désespérément de corriger le script suivant pour que l'image qui apparait se mette pile poil au centre de la page en diaporama automatique avec liens sur chaque image [ par ju1385 ] Bonjour, j'ai ici un script simple de diaporama d'image que j'ai récupéré et qui marche bien. Cependant, je voudrais y modifier/ajouter 2 choses (je n mon diapo ne s'affiche pas sans connection [ par hitu ] Bonjour j'ai réalisé un diaporama mais celui ne s'affiche pas quand je ne suis pas connecté! Merci d'avance voici mon code: [code=as][code=html] Redimensionner sans déformer une image avec du Javascript [ par ifuseeknicky ] Bonjour, actuellement en train de créer un site sur Blogger je suis confronté à un problème de dimensions d'images ! Blog Address: http://blogmpocom Bloquer un setTimeout [ par ov3rdoze ] Salut à tousJ'essaye de faire une galerie photo avec un diaporama. Tout fonctionne mais j'ai un problème dans un cas particulier : Si on arrete le dia Image java base de données php [ par olis1205 ] Bonjour, J'ai une base de données avec le nom de differentes photos avec plusieurs lignes id id 1 ==> 4 photos id 2 ==> 4 photos ect.. Je souhaite fa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales