problème de diaporama creé en javascript - HTML/CSS - Programmation
Marsh Posté le 22-04-2006 à 20:36:44
Ben mon gars il va faloir bosser un peu, hein.
Ici c'est pas l'auberge du bon samaritain....
Je dis pas, que tu est venu ici dans l'espoir qu'on te fasse tout à ta place...
Mais bon ton sujet me dis qu'on en est pas loin
Alors 2 choix:
_Soit tu payes quelqu' un pour qu'il te fasse les modifs...
_Soit tu apprends la porogrammation et tu reviens avec un truc à toi...
ps: je trouve qu'il y en as beaucoup cette semaine des gens comme ce monsieur...
Donc désolé pour toi mais là c'est la goutte qui fait deborder le vase. (et pourtant il est grand ce vase)
+
Marsh Posté le 22-04-2006 à 21:44:20
je t'en foutrai des gouttes d'eau qui vont deborder le vase!!
si tu veux pas m'aider tu m'aide pas mais j'ai pas besoin de tes ptits commentaires de prétentieux
ptetre que ya d'autres personnes qui sont plus sympathiques que toi sur ce forum
Marsh Posté le 23-04-2006 à 00:07:21
qude a écrit : je t'en foutrai des gouttes d'eau qui vont deborder le vase!! |
Marsh Posté le 23-04-2006 à 09:00:57
En fait déjà faudrait récupérer un autre script que celui-ci, qui a l'air vraiment minable au niveau du code.
Si tu as un pietre niveau en JS, a tu au moins un niveau en programmation générale ?
Marsh Posté le 23-04-2006 à 21:59:00
ben je connais pas mal le php je vais p e essayer de trouver qqch la dessus alors
Marsh Posté le 22-04-2006 à 19:56:47
bonjour à tous,
j'ai récupéré un programme sur le net que j'ai légèrement mofifier. ce programme permet de créer un diaporama selon des soufaits préalablement définis.
Toutefois, je rencontre quelques difficultées, étant donné mon lamentable niveau en javascript:
- tout d'abord, je n'arrive pas à modifier le code pour que l'on puisse visualiser une infinité de photos (au lieu de 3!)
- de plus, j'aimerais que le prgramme ne prenne pas en compte le nom des photos pour lancer le diaporama (autrement dit que je ne sois pas obligé de renommer toutes les photos '1.jpg", "2.jpg", ...)
- au lieu de mettre directement les photos à côté du .html, j'aimerais les mettre proprement dans un repertoire situé à côté du programme.
- enfin, j'aimerais qu'un redimenssionnement automatique ait lieu pour que toutes les photos soient de la même taille, c'est à dire la taille de l'écran dans lequel elles apparaissent.
voila j'espere qu'il n'y a rien de trop compliqué
merci d'avance à tout le monde ;-)
ps: voici mon programme
<SCRIPT LANGUAGE="JavaScript">
// Paramétrage
var rep = ""; // Sous répertoires des images (/) si pas de sous repertoire
var num = 0;
var myCounter;
var next_img = new Image;
next_img.src = rep+"pixel_transparent.gif";
var wPopup;
var tabImg;
var tabImgSave = new Array;
// Images du diaporama
tabImgSave[0] = '1.jpg';
tabImgSave[1] = '2.jpg';
tabImgSave[2] = '3.jpg';
var nb_img = tabImgSave.length;
// NE PAS MODIFIER
// Les trois fonctions suivantes servent à mélanger un tableau quelconque
// à partir d'une permutation tirée aléatoirement
//
// Génère une fonctione sous-excédente
function fctSsExc() {
var fct = new Array;
for(var i=0; i<nb_img; i++) {
fct[i] = Math.floor( Math.random()*(nb_img-i) );
}
return fct;
}
// Construit une permutation à partir d'une fonction sous-excédente
function buildSigma() {
var fct_ss_exc = fctSsExc();
var set_N = new Array;
for(var i=0; i<nb_img; i++) {
set_N[i] = i;
}
var sigma = new Array;
for(var i=0; i<nb_img; i++) {
sigma[i] = set_N[fct_ss_exc[i]];
set_N.splice(fct_ss_exc[i],1);
}
return sigma;
}
// Retourne une version mélangée du tableau passé en paramètre
function shuffleArray(myArray) {
var sigma = buildSigma();
var newArray = new Array;
for(var i=0; i<nb_img; i++) {
newArray[i] = myArray[sigma[i]];
}
return newArray;
}
//
// Fin des fonctions de mélange
//
// Donne le focus au bouton "Lancer"
function focusOnLaunch() {
window.document.forms.settings.bLaunch.focus();
}
// Donne le focus au bouton "Stopper"
function focusOnStop() {
window.document.forms.settings.bStop.focus();
}
// Lance le chargement de l'image suivante
function next() {
// Est-ce que l'image dans le popup est complètement chargée ?
if(wPopup.document.images && wPopup.document.images[0].complete) {
// Est-ce que la dernière image chargée est celle affichée dans le popup ?
if(next_img.src != rep+tabImg[num]) {
// Oui, alors on commence à charger la suivante
next_img = new Image;
next_img.src = rep+tabImg[num];
}
// Est-ce que l'image suivante est préchargée ?
if(next_img.complete) {
// Oui, alors après le temps de pause choisi par l'utilisateur, cette image remplacera l'actuelle
myCounter = setTimeout("launch()", 1000*window.document.settings.tempo.value);
}
else {
// Non, alors on continue d'attendre qu'elle le soit
myCounter = setTimeout("next()", 250);
}
}
else {
// Non, alors on attend qu'elle le soit
myCounter = setTimeout("next()", 250);
}
}
// Lance le slideshow
function launch() {
// Petite vérification de la temporisation choisie
if(window.document.settings.tempo.value == "" ) {
alert("Précisez une temporisation entre 0 et 60 secondes..." );
return false;
}
// Ordre normal ou aléatoire
if(num == 0) {
if(window.document.settings.order[1].checked) {
tabImg = shuffleArray(tabImgSave);
}
else {
tabImg = tabImgSave;
}
}
// Avant de lancer le slideshow, on désactive tous les éléments du formulaire
if(!window.document.forms.settings.bLaunch.disabled) {
next_img.src = rep+tabImg[0];
window.document.forms.settings.bStop.disabled = false;
focusOnStop();
window.document.forms.settings.bLaunch.disabled = true;
window.document.forms.settings.repeat.disabled = true;
window.document.forms.settings.order[0].disabled = true;
window.document.forms.settings.order[1].disabled = true;
window.document.forms.settings.tempo.disabled = true;
}
// Si la fenêtre n'existe pas ou est fermée, on la réouvre
if(!wPopup || wPopup.closed) {
wPopup = window.open('', 'img_popup', 'width=50, height=50, top=(screen.height-50)/2, left=(screen.width-50)/2, status=no, directories=no, toolbar=no, location=no, menubar=no, scrollbars=no, resizable=yes');
}
// On écrit le contenu de la fenêtre popup
wPopup.document.clear();
wPopup.document.write("<HTML><HEAD><TITLE>Slideshow : "+(num+1)+"/"+nb_img+"</TITLE></HEAD>" );
// La fonction qui attend que l'image soit chargée et affichée pour redimensionner la fenêtre à la bonne taille
wPopup.document.write('<SCRIPT language="JavaScript">\nfunction checkSize() { if(document.images[0].complete) { w = document.images[0].width+1000; h = document.images[0].height+1000; window.resizeTo(w, h); window.moveTo((screen.width-w)/2, (screen.height-h)/2); document.images[0].style.visibility = "visible"; window.focus(); } else { setTimeout("checkSize()", 250); } }\n</'+'SCRIPT>');
wPopup.document.write('<BODY bgcolor="#000000" leftMargin="0" topMargin="0" marginWidth="0" marginHeight="0">');
wPopup.document.write('<table width="100%" height="100%" align="center" cellpadding="0" cellspacing="0"><tr valign="middle"><td align="center"><img src="'+next_img.src+'" border="0" onLoad="checkSize()" onClick="window.opener.stop()" style="visibility:hidden"></td></tr></table>');
wPopup.document.write('</BODY></HTML>');
wPopup.document.close();
num++;
// On a passé toutes les images, on repart du début
if(num == nb_img) num = 0;
// Si "Répéter" n'est pas cochée, on stoppe le slideshow
if(num == 0 && !window.document.settings.repeat.checked) {
setTimeout("stop()", 1000*window.document.settings.tempo.value);
return false;
}
next();
}
// Stoppe le slideshow
function stop() {
clearTimeout(myCounter);
wPopup.close();
// On réactive tous les éléments du formulaire
window.document.forms.settings.bLaunch.disabled = false;
focusOnLaunch();
window.document.forms.settings.bStop.disabled = true;
window.document.forms.settings.repeat.disabled = false;
window.document.forms.settings.order[0].disabled = false;
window.document.forms.settings.order[1].disabled = false;
window.document.forms.settings.tempo.disabled = false;
num = 0;
}
// Vérification de la temporisation à chaque modification de celle-ci
function checkTempo() {
var t = window.document.settings.tempo.value;
if(isNaN(t) || t<0 || t>60) {
window.document.settings.tempo.value = 3;
alert("Mauvaise temporisation...\Entrez un temps compris entre 0 et 60 secondes." );
return false;
}
}
</SCRIPT>
</p>
<p> </p>
<p> </p>
<p> </p>
<p align="center"> </p>
<p> </p>
<p><br>
</p>
<center>Bienvenue sur le module d'administration du diaporama<br> chosissez les otpions souhaitées puis appuyez sur "lancer"</center>
<form name="settings">
<table align="center" cellpadding="2" cellspacing="0" border="0">
<tr>
<td>ordre:</td>
<td><p class="left"> <input type="radio" name="order" value="normal"checked>
<font color="#000000">normal </font></td>
<td><p class="left"><input type="radio" name="order" value="aléatoire" >
<font color="#000000">aléatoire</font></p>
</td>
</tr>
<tr>
<td>répétition:</td>
<td><p class="left"><input type="radio" name="repeat" value="normal" checked>
<font color="#000000">oui</font></p></td>
<td><p class="left"><input type="radio" name="none" value="normal"><font color="#000000">non</font></p></td>
</td>
</tr>
<tr>
<td colspan="3">
<p class="left"><font color="#000000">Temporisation :</font>
<input type="text" name="tempo" value="5" size="5" maxlength="2" onKeyUp="checkTempo()" onChange="checkTempo()">
<font color="#000000">seconde(s)</font></p>
</td>
</tr>
<tr>
<td align="center" colspan="3">
<br><input type="button" onClick="launch()" name="bLaunch" value="Lancer" style="width: 150px">
<input type="button" onClick="stop()" name="bStop" value="Stopper" style="width: 150px" disabled>
</td>
</tr>
<td align="center" colspan="3"><input name="button" type=button onClick="javascript:self.close();" value="quitter" class="bouton" style="width: 150px">
</td>
</tr>
</table>
</body>