BANNIÈRE, DIAPORAMA, FONDU, AJAX

rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 - 1 juin 2007 à 13:06
sartoz Messages postés 27 Date d'inscription vendredi 15 octobre 2010 Statut Membre Dernière intervention 12 août 2012 - 21 févr. 2011 à 20:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42611-banniere-diaporama-fondu-ajax

sartoz Messages postés 27 Date d'inscription vendredi 15 octobre 2010 Statut Membre Dernière intervention 12 août 2012
21 févr. 2011 à 20:05
mieux que flash
quentinix Messages postés 98 Date d'inscription dimanche 15 février 2009 Statut Membre Dernière intervention 28 juin 2020
18 janv. 2010 à 17:59
sais bien mais ,il faudrait que les image sois cliquable.
toga222 Messages postés 5 Date d'inscription samedi 2 janvier 2010 Statut Membre Dernière intervention 27 février 2022
3 juin 2009 à 11:57
bonjour,
la boucle du diaporama ne marche pas cad que le diaporama s'arrete sur la deuxieme image
Est ce que vous auriez une solution pour que le diaporama continue sans blocage?
merci d'avance
h405 Messages postés 7 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 28 février 2011
28 juil. 2008 à 21:38
très bonne alternative à flash
Merci
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
19 avril 2008 à 12:37
oula j'avais pas vu ces postes, dsl de pas avoir répondu.

Pour mooky3d, sa fait un longtemps que je n'ai pas vu ce code, mais j'ai regardé vite fait.

Je pense que t'as plus besoin de la partie VisuelPos... et la tu fait t'ulise l'instruction rand dont je ne sais plus l'instruction, je crois que c'est srand:

document.getElementById("visuel").innerHTML+="<img src='" + VisuelTab[rand(VisuelTab.length )][0] ...

Après pour le lien, tu ajoutes tes liens dans le tableau et comme sa tu auras un lien associé à ton image. Mais dans tous les cas il va falloir un peu se pencher dans le code.

Pour ninjin94, je sais pas :s

Have fun
Nijin94 Messages postés 1 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 18 avril 2008
18 avril 2008 à 23:23
Bonjour

Le code ne fonctionne pas, il affiche une et unique image même si je recharge la page...
Mooky3D Messages postés 2 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 19 août 2007
19 août 2007 à 10:41
je savais que j'avais oublier quelque chose, Milles excuses pour ce deuxième post.

Dans l'affichage des images est il possible d'accrocher un lien pour chacune des images ?
je supposerais que c'est certainement dans cettte partie du code pour l'affichage.

######## Extrait de visuel.js de ABDOULAX ##########
#{
# VisuelPosChange=VisuelPos;
# VisuelPos++;
# if ( VisuelTab.length <= VisuelPos )
# VisuelPos=0;
#
# if ( VisuelTab[VisuelPosChange][1] == 1 )
# ICI ? -># document.getElementById("visuel").innerHTML+="";
# else
# {
# setTimeout("Visuel_Defil()", 10);
# return 0;
# }
# Visuel_Fondu();
#}
###########

Pour la définition du lien j'imagine que c'est à rajouter dans la liste de définitions des images

###########
# var VisuelTab = [
# ["visuel_2.jpg",0],
# ["visuel_3.jpg",0],
# ["visuel_4.jpg",0],
# ["visuel_5.jpg",0],
# ["visuel_1.jpg",0],
# ];
###########
Merci Arnaud
Mooky3D Messages postés 2 Date d'inscription samedi 18 août 2007 Statut Membre Dernière intervention 19 août 2007
19 août 2007 à 10:17
Bonjour et merci pour ce code léger et efficace.

Je m'en sers pour l'affichage d'une galerie dans la bannière de mon site.
Cependant je ne suis pas programmeur, et j'aurai aimé savoir s'il était possible de rendre aléatoire, le chargement et l'affichage des images de manière à ce que les visiteurs du site ne voie pas toujours les mêmes images (les premières en particulier).
je ne demande pas de le faire à ma place mais au mois m'indiquer un chemin de reherche.

Juste une remarque pour les apprentis sorciers dans mon genre ;-), Il manque un peu d'information dans le code de ton fichiers. je veux dire par là qu'avec des commentaires en entête de chaque partie et fonctions importantes de ton code, nous pourrions en même temps que l'utiliser, Apprendre et comprendre le fonctionnement du script. Bien sur c'est mon avis et c'est quand même ton code ;-).

Amicalement Arnaud (Alias Mooky)
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
25 juil. 2007 à 19:38
Normalement mon code reboucle sur le premier élément. Si tu veux y a une version sans AJAX. Continue un peu à chercher... Et si tu trouves pas montre nous ton pb!!

Have fun
Maxdivertis Messages postés 7 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 8 septembre 2010
25 juil. 2007 à 16:41
Enfin ça fait 2h que je suis sur ce code et que j'essaye des boucles par ci par la, mais je trouve pas. Et l'AJAX je connais pas du tout.
donc si quelqu'un veux un bout de mon code...?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 juil. 2007 à 16:37
ben comme dirai l'autre...
y'a qu'a remonter tes manches ^^
Maxdivertis Messages postés 7 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 8 septembre 2010
25 juil. 2007 à 16:31
En fait si j'ai par exemple 4 photos j'ai mon diaporama qui commence par photo1 puis photo2... et arrivé a photo4 il s'arrete alors que j'aimerai qu'il reprenne a photo1, que ça fasse une boucle...

Merci
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
25 juil. 2007 à 16:12
Je ne comprends ce que tu veux exactement!! ??
Maxdivertis Messages postés 7 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 8 septembre 2010
25 juil. 2007 à 16:04
Bonjour,
J'ai par contre un soucis au niveau du rafraichissement du diaporama : j'aimerai qu'il tourne en boucle sans etre obliger de rafraichire toute la page.
Voulez vous un bout de mon code ?
Merci d'avance
Maxdivertis Messages postés 7 Date d'inscription mardi 24 juillet 2007 Statut Membre Dernière intervention 8 septembre 2010
25 juil. 2007 à 15:31
Une ressource qui m'a sauvé la vie pour mon stage, merci.
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
6 juin 2007 à 23:52
En effet je me suis trompé, cette fonction est bien compatible avec opéra, j'ai parlé trop vite ^^. En attendant tu m'as toujours pas données d'exemple concernant ton histoire d'AJAX, pas de cache... Donne moi un exemple, une source, quelque chose qui me démontre que j'ai pas raison... Moi ce que je vois c'est que ma source marche très bien, donc pour le moment je change pas d'avis. Mais j'attends une démonstration de ta part...

Et tes conseils je les ai acceptés, la preuve j'ai fait une version avec la fonction new Image().

Have fun
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
6 juin 2007 à 21:22
Je n'ai rien à apprendre de toi, je suis ingénieur informatique spécialisé dans le développement Web 2.0.

Il y a maintenant pratiquement 1 an j'ai déposé une source que j'ai faite sur ce site sur un outil javascript permettant de faire des diaporamas un peu comme Flash. Et heureusement que Opéra fonctionne pour le new Image(). C'est la base de tout navigateur pour le traitement d'images. Et pour corriger ton histoire de cache avec Ajax, ce n'est pas une particularité d'Ajax mais un défaut qui apparait seulement sur Internet Explorer pour le cache des images (il ne met pas a jour l'image même si l'image est différente donc un tips est de rajouter dans l'url de l'image le timecode courant) puis le navigateur garde en cache seulement la réponse XML lors d'une requete Ajax et en aucun cas un code binaire d'une image récupéré par la réponse Texte.

Je suis désolé mais je pense que tu n'as rien compris au cache d'un navigateur est comment fonctionne une requête Ajax.

Sur ce je vais arrêté de discuter avec toi car cela ne mène nulle part et tu ne veux pas admettre tes erreurs et pas accepter des conseils.

++
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
6 juin 2007 à 20:18
Apperement AJAX est compatible avec opera contrairement à la solution avec new Image(). Donc finalement, la solution avec AJAX est la plus adapté! Voilà, j'espère que le prochain cou tu éviteras de t'emballer avant d'enfoncer les gens et de mettre de sale note qui n'ont pas lieu d'être!!

Have fun

(faut que je mette ma source à jour, problème d'opacité avec opera
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
3 juin 2007 à 22:20
Lol, a vrai dir ce que tu me dis n'est pas fondé, donne moi des exemples!! Moi j'ai fait des essaie et je te confirme que AJAX met les images en cache. Tape AJAX et cache sur google, tu vas voir que tu te trompe. Bon j'espere que je vais réussir à te rendre compte que tu as tor!!

Sinon merci pour le code, je teste ça dessuite...

Have fun
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
3 juin 2007 à 04:36
Aller je te dis maintenant ca sera fait comme ca...

remplace la ligne :
tonimage[LoadVisuelPos].onload = function() { JsIsLoading(LoadVisuelPos); };

par :
tonimage[LoadVisuelPos].onload = eval("function() { JsIsLoading("+LoadVisuelPos+"); }");

aller bye
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
3 juin 2007 à 04:27
Bon vu l'heure qu'il est je n'ai pas trop envie de réfléchir à ca je regarderai ton code demain...

Sinon je te redis encore une fois ... Ajax ne sert à rien!!!!! C'est pas une requête Ajax qui mets quoi que ce soit dans le cache. Ajax permet de communiquer dynamiquement avec un serveur et donc sert à échanger des informations entre client et serveur, je sais de quoi je parle sinon je ne me serais pas permis de te laisser le message précédent, enfin bon si tu ne veux pas me croire c'est comme tu veux, ca va pas m'empecher de dormir. Mais vu ce que tu me dis tu devrais tout de même aller te renseigner un peu plus sur le fonctionnement du cache d'un navigateur alors, ainsi que l'utilité des requêtes Ajax et surtout comment on s'en sert.

Une requête Ajax dont on ne se sert pas de la réponse c'est que dans un cas bien précis lorsqu'on veut enregistrer quelque chose dans une base de données. dans les autres cas on veut que le serveur nous renvoie des données donc qu'on se sert de la réponse.

Je te ferai ca demain ++
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
2 juin 2007 à 19:36
Tien j'ai besoin de ton aide, car j'ai pas beaucoup de temps pour chercher. Donc voici le code suivant pour remplacer la partie AJAX:

function LoadVisuel() {
var tonimage=new Array();

for ( LoadVisuelPos=0;LoadVisuelPos<VisuelTab.length;LoadVisuelPos++)
{
tonimage[LoadVisuelPos] = new Image();
tonimage[LoadVisuelPos].src = VisuelTab[LoadVisuelPos][0];
tonimage[LoadVisuelPos].onload = function() { JsIsLoading(LoadVisuelPos); };
}
}
function JsIsLoading(LoadVisuelPos_) {
alert("hihi" + LoadVisuelPos_);
//alert(LoadVisuelPos_ + " - " + VisuelTab[LoadVisuelPos_][0]);
VisuelTab[LoadVisuelPos_][1]++;
if ( VisuelPos==-1 )
{
VisuelPos=0;
Visuel_Defil();
}
}

Lors de l'appel de la fonction JsIsLoading(LoadVisuelPos_) une fois que l'image est chargé, mon problème est de récupérer le bon paramètre, cad 0, 1, 2, 3 ou 4. Ici à chaque evenement il me sort 5.

Merci de ton aide :p

Have fun
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
2 juin 2007 à 13:02
Contrairement à ce que tu croi, AJAX sert! Il sert à charger les images, avant de les afficher. Celle qui ne sont pas charger ne s'afficheront pas lors du diaporama. Elles attendront le prochain tour quand elles seront chargées. Pour ton histoire de réponse, faut que tu saches qu'on est pas obligé de l'utilisé. Moi j'utilise AJAX pour que l'image soit chargé dans le cache du navigateur. La version sans AJAX marche très bien en local, mais dès que tu vas la mettre en ligne, sa risque de merdé (tant de téléchargement de l'image).
Cependant je veux bien admettre que la solution avec new Image()... peut très bien marché, c'est à tester (ce week end j'espère)!

En tout cas j'espère que tu comprends mieux le fonctionnement de ce code et qu'on est pas obligé d'utiliser tes fameuses réponses!!

Have Fun
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
1 juin 2007 à 22:04
Non j'ai pas mis 1/10 pour le choix d'une méthode j'ai juste mis 1/10 car l'ajax ne sert pas du tout !!! tu lances des requêtes Ajax dans le vent puisque tu ne récupères pas la réponse...

Ce n'est pas tes requêtes Ajax qui chargent tes images voilà.

D'ailleurs l'exemple sans ajax que tu as mis avec est OK et l'autre avec Ajax ne sert à rien. Voilà c'est pas méchant c'est juste pour que tu comprennes que tes requêtes ne servent à rien et sont dans le vent.
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
1 juin 2007 à 13:39
Lol, a quand même, genre j'avais envie de me la pété alors j'ai mis de l'AJAX. En faite ce code je l'ai utilisé pour réaliser un site lors de mon stage. Donc avant tout ce code a été réalisé pour un site et non pour impressionné les gens, comme tu peux le croir!!
En faite je connaissé pas cette méthode, du moins y a lontemps je croi l'avoir déjà vu, cependant dès que j'ai le temps je vais essayer de l'adapter à mon programme.

Enfin voilà, un 1/10 c'est méchant juste pour le choix d'une methode!!

Have fun
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
1 juin 2007 à 13:06
Salut

Je pense que tu veux impressionné du monde en utilisant ajax dans ta source... Ajax ne sert à rien et surtout pas pour charger des images. Et puis en plus si au moins tu utilisais la réponse de la requête (responseText) qui contient le code binaire de l'image ok peut être que ca pourrais marcher mais la ce n'est pas le cas.

Sache que pour charger une image en javascript on fait :

var tonimage = new Image(URL);
tonimage.onload = function() { // Ici tu es sûr que ton image est chargée }

Voilà j'espère que cela te servira à l'avenir et que tu arrêteras d'utiliser Ajax pour rien.
@+
Rejoignez-nous