Version complète: sur le forum Webmaster Hub : Probleme visioneuses
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net
cyril77
Bonjour,

J'aimerais mettre plusieures visioneuses sur une page de mon site internet.

Comment faire pour que les visioneuses fonctionne independament ?
iNCiTE Web
Tu veux faire quoi, proposer des visionneuses en téléchargement, genre PPS ou Word ?
cyril77
Je veux mettre plusieurs visioneuse de se type la :
-http://www.*****.fr/detail_tuiles_NEW.htm

J'ai besoins de mettre une 10e de visioneuse sur la memes page avec des images differantes pour chaque visioneuses
iNCiTE Web
Arf oui fallait déjà explique ce que tu appellais une visionneuse...

Tu as essayé de recopier le code de la première ?
cyril77
Oui j'ai essayé avec plusieurs visionneuses différentes et quand je mets plusieurs visionneuses aucune ne fonctionne.
cyril77
Personnes peux m'aider ?
iNCiTE Web
Sans trop chercher je dirais que ça ne fonctionne pas car dans le script tout fait que tu utilises, il y a un seul nom pour identifier l'objet et que si tu dupliques ça fait tout merder... il faut chercher comment leur donner un identifiant différent, dans la doc ou forum si existant...
cyril77
Je suis entierement d'accord avec toi mais pour le moment je n'ai pas trouver ou modifier l'identifiant
baboon
Bonjour,

Je veux bien jeter un oeil au code quelques minutes, si l'on m'envoi une url de téléchargement ...

Bon week end
baboon
Bonjour,
Désolé, j'avais laissé tombé...
A première vu tout se passe dans le script de gestion du diaporama soit "diaporama.js".
Tu peux peu-être dans une premier temps réecrire les fonctions de gestion du diaporama : diaporama.js (sept fonctions) X le nombre de galerie que tu souhaites...
Exemple : pour fonction next (), avec pour hypothèse dans le html
NomDuFormulaire 1 = "slideform1"; NomDeLaSelect = "slide1"; NomImage1 = show1; et
NomDuFormulaire 2 = "slideform2"; NomDeLaSelect = "slide2"; NomImage2 = show2;

CODE
function next1() {
  if (document.slideform1.slide1[current+1]) {
    document.images.show1.src = document.slideform1.slide1[current+1].value;
    document.slideform1.slide1.selectedIndex = ++current;
  } else {
    first1();
  }
function next2() {
  if (document.slideform2.slide2[current+1]) {
    document.images.show2.src = document.slideform2.slide2[current+1].value;
    document.slideform2.slide2.selectedIndex = ++current;
  } else {
    first2();
  }
}

Le formulaire 1 appelle les fonctions next1()..... et le formulaire 2 les fonctions next2()...
C'est pas trés élégant, ni astucieux, mais ça va marcher...tu y arriveras si tu ne connais pas je javascript...
Sinon :
Si tu aimes le javascript, tu peux passer en paramètre de la procédure les variables à modifier : slideform, slide et show.
L'appel de la procédure, next par exemple, sera du genre next(slideform,slide,show).
Reste plus qu' à écrire un contenu de fonction générique qui recupère dans le bon "form" la valeur de "slide" (liste déroulante) et met à jour la variable show (image)... GetElementById() ou GetElementbyName devrait t'être utile...

Bonne continuation
cyril77
Je te remercie. J'essaye et je te tiens au courant
cyril77
J'ai donc réecri les fonctions de la page diaporama.js :

CODE
<!-- Begin
var rotate_delay = 5000; // delay in milliseconds (5000 = 5 secs)
current = 0;

function next1() {
if (document.slideform1.slide1[current+1]) {
document.images.show1.src = document.slideform1.slide1[current+1].value;
document.slideform1.slide1.selectedIndex = ++current;
} else {
first1();
}
function next2() {
if (document.slideform2.slide2[current+1]) {
document.images.show2.src = document.slideform2.slide2[current+1].value;
document.slideform2.slide2.selectedIndex = ++current;
} else {
first2();
}
}

function previous1() {
if (current-1 >= 0) {
document.images.show.src = document.slideform.slide[current-1].value;
document.slideform.slide.selectedIndex = --current;
} else {
last1();
}
function previous2() {
if (current-1 >= 0) {
document.images.show.src = document.slideform.slide[current-1].value;
document.slideform.slide.selectedIndex = --current;
} else {
last2();
}
}

function first1() {
current = 0;
document.images.show.src = document.slideform.slide[0].value;
document.slideform.slide.selectedIndex = 0;
}
function first2() {
current = 0;
document.images.show.src = document.slideform.slide[0].value;
document.slideform.slide.selectedIndex = 0;
}

function last1() {
current = document.slideform.slide.length-1;
document.images.show.src = document.slideform.slide[current].value;
document.slideform.slide.selectedIndex = current;
}
function last2() {
current = document.slideform.slide.length-1;
document.images.show.src = document.slideform.slide[current].value;
document.slideform.slide.selectedIndex = current;
}

function ap1(text) {
document.slideform.slidebutton.value = (text == "Arrêter") ? "Démarrer" : "Arrêter";
rotate1();
}
function ap2(text) {
document.slideform.slidebutton.value = (text == "Arrêter") ? "Démarrer" : "Arrêter";
rotate2();
}

function change1() {
current = document.slideform.slide.selectedIndex;
document.images.show.src = document.slideform.slide[current].value;
}
function change2() {
current = document.slideform.slide.selectedIndex;
document.images.show.src = document.slideform.slide[current].value;
}

function rotate1() {
if (document.slideform.slidebutton.value == "Arrêter") {
current = (current == document.slideform.slide.length-1) ? 0 : current+1;
document.images.show.src = document.slideform.slide[current].value;
document.slideform.slide.selectedIndex = current;
window.setTimeout("rotate1()", rotate_delay);
}
function rotate2() {
if (document.slideform.slidebutton.value == "Arrêter") {
current = (current == document.slideform.slide.length-1) ? 0 : current+1;
document.images.show.src = document.slideform.slide[current].value;
document.slideform.slide.selectedIndex = current;
window.setTimeout("rotate2()", rotate_delay);
}
}
// End -->


Ca ne fonctionne toujours pas, vois tu une erreur dans ma réecriture ?

Je te remercie par avance pour ta précieuse aide
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.