begin process at 2012 05 29 15:55:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript Orienté objet (POO)

 > 

Divers

 > 

Placement aléatoire d'image sur clic


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

Placement aléatoire d'image sur clic

vendredi 19 février 2010 à 08:51:06 | Placement aléatoire d'image sur clic

projer


Bonjour,

je me mets tout juste à javascript et je bute sur un problème...

En fait, j'ai placé 3 photos dans des td et je veux que sur un clic sur une des photos, qu'elles se replacent aléatoirement.

Pour l'instant, j'essaye juste de placer la première photo choisie aléatoirement dans la première td, après j'utiliserai splice je pense et choisirai aléatoirement une des 2 autres photos puis re splice et affichage de la dernière.

Voici ce que j'ai fait et qui ne fonctionne pas :

<head>
<script language="JavaScript">

function mix() {
tbimage=new Array("photo0","photo1","photo2");
var imageAleatoire=Math.round(Math.random()*3);
document.getElementById("image0").rows[0].cells[0].appendChild(document.createElement('a')); document.getElementById("image0").rows[0].cells[0].lastChild.appendChild(document.createElement('img')); document.getElementById("image0").rows[0].cells[0].lastChild.lastChild.style.height="150px"; document.getElementById("image0").rows[0].cells[0].lastChild.lastChild.src='images/'+tbimage[imageAleatoire]+'.jpg';
}
</script>
</head>


<body>
<div align="center" style="">
<table id="ntab" border='no' rules='none'>
<tr id='fg'>
<td id="image0"> <a> <img src="images/d7.jpg" width="150" height="150" onclick='mix()' ></a> </td>

<td id="image1"> <a> <img src="images/d7_02.jpg" width="150" height="150" onclick='mix()' ></a> </td>

<td id="image2"> <a> <img src="images/d7_03.jpg" width="150" height="150" onclick='mix()' ></a> </td>
</tr>
</table>
</div>
</body>
</html>

--------------------------------------------------------

http://www.projer.fr - dev web
http://www.lysdesign.fr - DA print / web - Illustratrice
vendredi 19 février 2010 à 11:43:39 | Re : Placement aléatoire d'image sur clic

projer

J'ai avancé un peu mais ce n'est pas concluant car parfois des td sont vides, parfois on a 2 fois la même photo et je ne l'explique pas mais au 2° click, il me remet systématiquement les photos telles qu'elles sont au démarrage...

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="JavaScript">
function mix() {
var tbimage=new Array("d7","d7_02","d7_03");
for(i=0;i<3;i++){
var imageAleatoire=Math.round(Math.random()*tbimage.length);
document.getElementById("images").insertCell(0)
document.getElementById("images").cells[0].appendChild(document.createElement('a')).href='';
document.getElementById("images").cells[0].lastChild.appendChild(document.createElement('img'));
document.getElementById("images").cells[0].lastChild.lastChild.style.height="150px"
document.getElementById("images").cells[0].lastChild.lastChild.src='images/'+tbimage[imageAleatoire]+'.jpg'
tbimage.slice(imageAleatoire,imageAleatoire)
document.getElementById("images").deleteCell(3)
}
}
</script>
</head>
<body>
<div align="center" >
<table border='no' rules='none'>
<tr id="images" >
<td > <a> <img src="images/d7.jpg" width="150" height="150" onclick='mix()' ></a> </td>
<td > <a> <img src="images/d7_02.jpg" width="150" height="150" onclick='mix()' ></a> </td>
<td > <a> <img src="images/d7_03.jpg" width="150" height="150" onclick='mix()' ></a> </td>
</tr>
</table>
</div>
</body>
</html>


--------------------------------------------------------

http://www.projer.fr - dev web
http://www.lysdesign.fr - DA print / web - Illustratrice
vendredi 19 février 2010 à 12:40:18 | Re : Placement aléatoire d'image sur clic

projer


apparemment slice ne fonctionne pas comme je l'avais compris, comment enlever une case d'un tableau?

--------------------------------------------------------

http://www.projer.fr - dev web
http://www.lysdesign.fr - DA print / web - Illustratrice
vendredi 19 février 2010 à 12:57:41 | Re : Placement aléatoire d'image sur clic

projer


Mon dernier essai, toujours le même problème de case parfois vide, j'ai modifié le code pour qu'il lance le chargement des images au début au lieu de les mettre en fixe :

<head>
<script language="JavaScript">
function mix0() {
tbimage=new Array("d7","d7_02","d7_03");
for(i=0;i<3;i++){ imagealeatoire=Math.round(Math.random()*tbimage.length);

document.getElementById("images").insertCell(0)
document.getElementById("images").cells[0].appendChild(document.createElement('a')).href='';
document.getElementById("images").cells[0].lastChild.appendChild(document.createElement('img'));
document.getElementById("images").cells[0].lastChild.lastChild.style.height="150px";
document.getElementById("images").cells[0].lastChild.lastChild.src='images/'+tbimage[imagealeatoire]+'.jpg';
tbimage.splice(imagealeatoire);
}
}

function mix() {
for(i=0;i<3;i++){
document.getElementById("images").deleteCell(0)
}
mix0();
}
</script>
</head>
<body onload="mix0()">
<div align="center" >
<table border='no' rules='none'>
<tr id="images" >
</tr>
</table>
</div>
</body>
</html>


Un peu d'aide serait la bienvenue, vous remerciant d'avance :)

--------------------------------------------------------

http://www.projer.fr - dev web
http://www.lysdesign.fr - DA print / web - Illustratrice
vendredi 19 février 2010 à 14:01:21 | Re : Placement aléatoire d'image sur clic

seblechinois

Bonjour,

Je pense que les cases vides sont dus à Math.random() qui renvoie une valeur entre 0 et 1.
Donc 0 * 3(taille tableau) = 0 et 1 * 3(taille tableau) = 3 => 4 indices (0, 1, 2 et 3) possibles pour le tableau => case vide

--
S.
vendredi 19 février 2010 à 14:09:00 | Re : Placement aléatoire d'image sur clic

projer


Il ne renvoie pas que 2 valeurs random, il renvoi un entier compris entre 0 et 1, que je multiplie par la longueur du tableau et que j'arrondi après

exemples :
si random =0.05 => imagealeatoire=arrondi(0.05*3)=arrondi(0.15)=0
si random =0.25 => imagealeatoire=arrondi(0.25*3)=arrondi(0.75)=1
si random =0.7 => imagealeatoire=arrondi(0.7*3)=arrondi(2.1)=2

Donc mon chiffre aléatoire sera bien compris entre 0 et 2

--------------------------------------------------------

http://www.projer.fr - dev web
http://www.lysdesign.fr - DA print / web - Illustratrice
vendredi 19 février 2010 à 14:17:09 | Re : Placement aléatoire d'image sur clic

seblechinois

Re,
De plus, apparemment la méthode splice écrase la tranche mais ne change pas les indices!
Donc il vaut peut-être mieux garder en mémoire les indices qui ont déjà été choisis. En passant par une table de hashage par exemple (http://weblogs.asp.net/ssadasivuni/archive/2003/09/17/27902.aspx) ou autre.

--
S.
vendredi 19 février 2010 à 14:21:34 | Re : Placement aléatoire d'image sur clic

seblechinois

Re,


Il ne renvoie pas que 2 valeurs random, il renvoi un entier compris entre 0 et 1, que je multiplie par la longueur du tableau et que j'arrondi après


Oui, je sais j'ai pris les valeurs extrêmes pour l'exemple!


exemples :
si random =0.05 => imagealeatoire=arrondi(0.05*3)=arrondi(0.15)=0
si random =0.25 => imagealeatoire=arrondi(0.25*3)=arrondi(0.75)=1
si random =0.7 => imagealeatoire=arrondi(0.7*3)=arrondi(2.1)=2



Mais si random =0.9 => imagealeatoire=arrondi(0.9*3)=arrondi(2.7)=3!
Si je ne me trompe pas.

--
S.


Cette discussion est classée dans : document, rows, getelementbyid, lastchild, image0


Répondre à ce message

Sujets en rapport avec ce message

Compatibilite [ par JB ] A grand dieu pardonnez moi de mon ignorance ! Plus serieusement, je suisdebutant programmeur (etudiant en BTS d'info, je n'avais que quelques basesde acces bouton [ par ben1 ] je suohaiterai vérifier que mes boutons sont bien actifs par .checked mais apparament ce ne fonctionne pas vraiment ... pourriez-vous m'aider?voici le javascript bouton checked function [ par ben1 ] je suohaiterai vérifier que mes boutons sont bien actifs par .checked mais apparament ce ne fonctionne pas vraiment ... pourriez-vous m'aider?> > voic Pb Menu dynamique [ par ultimaty ] Voila j'ai un probleme j'ai mon menu avec des rubriques et sous rubriquesj'aurais aime faire apparaitre mon sous menu lors d'un passage de la souris d script [ par thigat ] voilà j'ai fais un script, mais je n'arrive pas a mettre un lien (url) dans ce script, voici le script :/* ATP - webmaster* Script - WebNet.News */va valeur d'une variable [ par horyatus ] Bonjour à vous, Voila mon pbm :je créer une variable qui s'apelle vide et correspond à une imagevide="";ensuite je défini un div tab, lorsque l'on cl Changer la cible et le nom d'un lien lorsque on clique dessus. [ par greg505 ] Slt a tousJ'ai recuperé ces 2 ptit fonction qui permette de faire disparaitre et afficher un tableau...function disparition(){if(document.getElementBy position d'un id [ par pqmoltonel ] bonjour, je cherche desespérément une fonction / propriétée qui permet de retourner la position d'un element html quelconque contenant un id:voila le liste déroulante [ par rieppe ] Rieppe ©Salut !je vous expose le problème. j'ai une liste déroulante en au de ma pasge, et il faudrait que lorsqu'elle change, cela change aussi les l pb de getElementById [ par kidpigeyre ] for(var i=0;i { document.getElementById("tete")[i].innerHTML=document.getElementById("tete")[i].innerHTML.substr(0,3); }voila ça ça ne ma


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 : 1,451 sec (4)

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