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 :

Diaporama complexe en Javascript


Sujet :

JavaScript

  1. #1
    Membre � l'essai
    Profil pro
    �tudiant
    Inscrit en
    Janvier 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Par d�faut Diaporama complexe en Javascript
    Bonjour bonjour,
    Je d�bute en javascript, et malgr�s ma recherche sur le forum, je n'ai pas r�ussit a trouver une solution � mon probl�me.
    Voila je vous explique :
    J'ai une page web s�par�e trois en partie, une � gauche, une au milieu et une � droite.
    au milieu, il y a 5 petites images les unes au dessus des autres.
    quand on clique sur une image, dans la partie gauche, on la voit apparaitre en grand, et dans la partie droite, il y a du texte qui change en fonction de l'image, mais aussi trois autres petites images sous ce texte qui change. Et quand on clique sur ces nouvelles images, elles s'ouvrent en taille r�elle dans une fen�tre pop-up.
    Tout d'abord, pour les images du milieu, j'ai mis un onClick dessus, pour qu'elle change l'image de gauche. Ce qui fonctionne tr�s bien.
    Voici un petit exemple du code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <p><img name="photo1" class="photo1" onClick="divgaucheimggrosse.src='images/normales/image26.jpg'" onmouseover="this.style.cursor='pointer'" src="images/reduites/image26.jpg" alt="" /></p>
    Ensuite, pour les textes et les images qui changent, je les ai tous mis dans des div diff�rents, en pensant les cacher et les afficher en fonction de l'image cliqu�e, gr�ce � une aide que j'ai trouv� pr�c�demment sur ce forum. hors, sur les images du centre il y a donc deux fonctions onClick... Je ne sais pas trop comment faire pour concat�ner.
    Voici un extrait de ma tentative infructueuse pour r�soudre ce probl�me :
    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
    		<script language="JavaScript" type="text/javascript">
    			function diaporama(photo){
    				switch (photo){
    					case 'photo1':
    						div1.style.display= "block";
    						div2.style.display="none";
    						div3.style.display="none";
    						div4.style.display="none";
    						div5.style.display="none";
    						break;
    			        case 'photo2':
    						div2.style.display= "block";
    						div1.style.display="none";
    						div3.style.display="none";
    						div4.style.display="none";
    						div5.style.display="none";
    						break;
    					case 'photo3':
    						('div3').style.display= "block";
    						('div1').style.display="none";
    						('div2').style.display="none";
    						('div4').style.display="none";
    						('div5').style.display="none";
    						break;
    					case 'photo4':
    						('div4').style.display= "block";
    						('div1').style.display="none";
    						('div2').style.display="none";
    						('div3').style.display="none";
    						('div5').style.display="none";
    						break;
    					case 'photo5':
    						('div5').style.display= "block";
    						('div1').style.display="none";
    						('div2').style.display="none";
    						('div3').style.display="none";
    						('div4').style.display="none";
    						break;
     
    			       }
    			}
    		</script>
    Et le code HTML, sur juste deux photos � chaque fois car c'est toujours la m�me chose :
    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
    		<div id="corps_droit">
    			<p><img name="photo1" class="photo1" onClick="divgaucheimggrosse.src='images/normales/image26.jpg'" onClick="diaporama()" onmouseover="this.style.cursor='pointer'" src="images/reduites/image26.jpg" alt="" /></p>
    			<p><img name="photo2" class="photo2" onClick="divgaucheimggrosse.src='images/normales/image27.jpg'" onClick="diaporama()" onmouseover="this.style.cursor='pointer'" src="images/reduites/image27.jpg" alt="" /></p>
     
    			<div name="div1" style="display:block">
    				<p class="textdiapo">La chambre <em>AGAPANTE</em> Plouf plouf.</p>
    				<p><img class="photo6" onClick="window.open('images/normales/image31.jpg','','height=350,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image31.jpg" alt=""/></p>
    				<p><img class="photo7" onClick="window.open('images/normales/image32.jpg','bureau ancien','height=310,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image32.jpg" alt="Bureau ancien."/></p>
    				<p><img class="photo8" onClick="window.open('images/normales/image33.jpg','','height=310,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image33.jpg" alt="."/></p>
    			</div>
    			<div name="div2" style="display:none">
    				<p class="textdiapo">pouet pouet.</p>
    				<p><img class="photo6" onClick="window.open('images/normales/image34.jpg','','height=350,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image34.jpg" alt=""/></p>
    				<p><img class="photo7" onClick="window.open('images/normales/image35.jpg','','height=310,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image35.jpg" alt="Bureau ancien."/></p>
    				<p><img class="photo8" onClick="window.open('images/normales/image36.jpg','','height=310,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image36.jpg" alt=""/></p>
    			</div>
    Voila, je crois que j'ai tout dis, j'esp�re avoir �t� assez claire dans la description.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    130
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 130
    Par d�faut
    Salut,

    Tu ne peux pas mettre plusieurs attributs 'onclick' sur une m�me balise.

    Pour ex�cuter plusieurs fonctions sur un 'onclick', il suffit de les regrouper dans une seule et unique fonction qui les ex�cutera toutes.

    Donc au lieu d'�crire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <p><img name="photo1" class="photo1" onClick="divgaucheimggrosse.src='images/normales/image26.jpg'" onClick="diaporama()" onmouseover="this.style.cursor='pointer'" src="images/reduites/image26.jpg" alt="" /></p>
    On �crira plut�t
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script type="text/javascript">
    function exec(){
    divgaucheimggrosse.src = 'images/normales/image26.jpg';
    diaporama();
    }
    </script>
    <p><img name="photo1" class="photo1" onclick="exec();" onmouseover="this.style.cursor='pointer'" src="images/reduites/image26.jpg" alt="" /></p>

    Autre suggestion / recommandation, les 'onclick', 'onmouseover' etc ... s'�crivent tous en minuscules (comme toutes les balises HTML d'ailleurs).


    Derni�re chose, plut�t que d'utiliser l'attribut 'name' pour d�signer et retrouver tes blocks (balises 'div'), utilise plut�t l'attribut 'id' et la fonction 'getElementById' pour le d�signer.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <div id="div1" style="display:block">
    en lieu et place de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <div name="div1" style="display:block">
    ensuite
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById('div1').style.display = "block";
    en lieu et place de
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    div1.style.display = "block";

    Bonne chance.

  3. #3
    Membre � l'essai
    Profil pro
    �tudiant
    Inscrit en
    Janvier 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Par d�faut
    Bonjour, et merci de ton aide.
    J'ai fait tout ce que tu m'as dis, je vais mettre l'int�gralit� de mon code ici :
    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
    		<script language="JavaScript" type="text/javascript">
    			function diaporama (photo){
    				switch (photo){
    					case 'photo1':
    						divgaucheimggrosse.src = 'images/normales/image26.jpg';
    						document.getElementById('div1').style.display = "block";
    						document.getElementById('div2').style.display = "none";
    						document.getElementById('div3').style.display = "none";
    						document.getElementById('div4').style.display = "none";
    						document.getElementById('div5').style.display = "none";
    						break;
    			        case 'photo2':
    						divgaucheimggrosse.src = 'images/normales/image27.jpg';
    						document.getElementById('div2').style.display = "block";
    						document.getElementById('div1').style.display = "none";
    						document.getElementById('div3').style.display = "none";
    						document.getElementById('div4').style.display = "none";
    						document.getElementById('div5').style.display = "none";
    						break;
    					case 'photo3':
    						divgaucheimggrosse.src = 'images/normales/image28.jpg';
    						document.getElementById('div3').style.display = "block";
    						document.getElementById('div1').style.display = "none";
    						document.getElementById('div2').style.display = "none";
    						document.getElementById('div4').style.display = "none";
    						document.getElementById('div5').style.display = "none";
    						break;
    					case 'photo4':
    						divgaucheimggrosse.src = 'images/normales/image29.jpg';
    						document.getElementById('div4').style.display = "block";
    						document.getElementById('div1').style.display = "none";
    						document.getElementById('div2').style.display = "none";
    						document.getElementById('div3').style.display = "none";
    						document.getElementById('div5').style.display = "none";
    						break;
    					case 'photo5':
    						divgaucheimggrosse.src = 'images/normales/image30.jpg';
    						document.getElementById('div5').style.display = "block";
    						document.getElementById('div1').style.display = "none";
    						document.getElementById('div2').style.display = "none";
    						document.getElementById('div3').style.display = "none";
    						document.getElementById('div4').style.display = "none";
    						break;
     
    			       }
    			}
    		</script>
    Et pour le xhtml :
    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
    		<div id="corps_gauche">
    			<p><img class="divgaucheimggrosse" name="divgaucheimggrosse" src="images/normales/image26.jpg" alt="Agrandissement des images." /></p>
    		</div>
     
    		<div id="corps_droit">
    			<p><img name="photo1" class="photo1" onclick="diaporama(photo1)" onmouseover="this.style.cursor='pointer'" src="images/reduites/image26.jpg" alt="" /></p>
    			<p><img name="photo2" class="photo2" onclick="diaporama(photo2)" onmouseover="this.style.cursor='pointer'" src="images/reduites/image27.jpg" alt="" /></p>
    			<p><img name="photo3" class="photo3" onclick="diaporama(photo3)" onmouseover="this.style.cursor='pointer'" src="images/reduites/image28.jpg" alt="" /></p>
    			<p><img name="photo4" class="photo4" onclick="diaporama(photo4)" onmouseover="this.style.cursor='pointer'" src="images/reduites/image29.jpg" alt="" /></p>
    			<p><img name="photo5" class="photo5" onclick="diaporama(photo5)" onmouseover="this.style.cursor='pointer'" src="images/reduites/image30.jpg" alt="" /></p>
    			<div id="div1" style="display:block">
    				<p class="textdiapo">Blabla, bla.</p>
    				<p><img class="photo6" onclick="window.open('images/normales/image31.jpg','','height=350,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image31.jpg" alt=""/></p>
    				<p><img class="photo7" onclick="window.open('images/normales/image32.jpg','','height=310,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image32.jpg" alt=""/></p>
    				<p><img class="photo8" onclick="window.open('images/normales/image33.jpg','','height=310,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image33.jpg" alt=""/></p>
    			</div>
    			<div id="div2" style="display:none">
    				<p class="textdiapo">Trucmuche</p>
    				<p><img class="photo6" onclick="window.open('images/normales/image34.jpg','','height=350,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image34.jpg" alt=""/></p>
    				<p><img class="photo7" onclick="window.open('images/normales/image35.jpg','','height=310,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image35.jpg" alt=""/></p>
    				<p><img class="photo8" onclick="window.open('images/normales/image36.jpg','','height=310,width=500') "onmouseover="this.style.cursor='pointer'" src="images/reduites/image36.jpg" alt=""/></p>
    			</div>
    je n'ai pas mis les trois derniers div car ils sont sur le m�me mod�le.
    Bon, avec ce code, il ne se passe rien. Juste mon div1 est affich�, et les 3 images ouvrent des pop-up. mais sinon, la fonction ne se lance pas du tout, le site reste statique.
    J'ai beau chercher une erreur de frappe, mais je n'en trouve vraiment pas. Il me manquerais un �l�ment dans le javascript ? J'avoue n'avoir jamais bien r�ussi � utiliser les fonctions.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    130
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 130
    Par d�faut
    Fais bien attention � passer tes param�tres sous forme de chaine (dans ton cas c'est ce qu'il faut faire).
    Tu as pour le moment:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <p><img name="photo1" class="photo1" onclick="diaporama(photo1)" onmouseover="this.style.cursor='pointer'" src="images/reduites/image26.jpg" alt="" /></p>
    Remplace par
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <p><img name="photo1" class="photo1" onclick="diaporama('photo1')" onmouseover="this.style.cursor='pointer'" src="images/reduites/image26.jpg" alt="" /></p>
    La diff�rence se situe au niveau du param�tre pass� � la fonction 'diaporama'.

    Fait aussi bien attention � bien s�parer les attributs de balise HTML (par des espaces), �a n'a pas l'air d'�tre toujours le cas.


    Pour les fonctions, ne t'en fais pas c'est un coup � prendre, �a viendra tout seul � force d'utilisation

  5. #5
    Membre � l'essai
    Profil pro
    �tudiant
    Inscrit en
    Janvier 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Par d�faut
    J'ai mis mes param�tres sous forme de chaine, mais �a ne marche toujours pas...
    Je te remercie de ton aide qui m'est pr�cieuse, je suis bloqu�e depuis plusieurs jours sur ce probl�me.
    Une autre id�e pourquoi ce code ne fonctionne pas ?

    Edit: ho, pour le moment je testais tout sous Firefox, mais j'ai tent� l'aventure avec IE, et le diaporama fonctionne parfaitement... donc le soucis vient de mon firefox ? mais pourquoi ?

  6. #6
    Mod�rateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    D�tails du profil
    Informations personnelles :
    �ge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par d�faut
    Bonjour

    divgaucheimggrosse.src = 'images/normales/image26.jpg';
    Seul IE acceptera d'adresser des �l�ments de cette mani�re, pour les autres navigateurs, la syntaxe � utiliser est :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    document.getElementById("divgaucheimggrosse").src='images/normales/image26.jpg';
    (sans oublier de rajouter l'id correspondant � ta balise img)


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de tr�s fort et de tr�s beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est �tre ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au del� de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  7. #7
    Membre � l'essai
    Profil pro
    �tudiant
    Inscrit en
    Janvier 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Par d�faut
    Hum, m�me en changeant cela, il n'y a toujours aucune r�action sur Firefox. En revanche j'ai test� avec conqueror, un navigateur de Linux, et le code fonctionne tr�s bien.

  8. #8
    Mod�rateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    D�tails du profil
    Informations personnelles :
    �ge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Par d�faut
    Et que te dis la console javascript de FF ?


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de tr�s fort et de tr�s beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est �tre ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au del� de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  9. #9
    Membre � l'essai
    Profil pro
    �tudiant
    Inscrit en
    Janvier 2008
    Messages
    5
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 5
    Par d�faut
    Ah ! hihi, c'�tait juste un truc tr�s tr�s tr�s tr�s b�te. J'avais fait une petite faute de frappe.
    Piouf, merci beaucoup de votre aide, vous m'avez bien fait avancer.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Diaporama Flash vers javascript
    Par pls85 dans le forum Biblioth�ques & Frameworks
    R�ponses: 1
    Dernier message: 20/02/2011, 23h03
  2. [javascript] affichage complexe de variable
    Par nicerico dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 24/03/2007, 17h42
  3. Diaporama javascript sous IE
    Par lexan007 dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 11/03/2007, 20h56
  4. Diaporama javascript sous IE
    Par lexan007 dans le forum Dreamweaver
    R�ponses: 1
    Dernier message: 08/03/2007, 10h20

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