Effet ajax puis changer image puis effet ajaxy

Annadrill Messages postés 147 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 22 novembre 2012 - 19 mars 2008 à 11:51
jeanMOULIN54 Messages postés 32 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 14 octobre 2010 - 11 juin 2008 à 15:55
bonjour,

voilà, j'ai une div avec une image dedans et j'aimerais que lorsque je clique sur un lien, la div se ferme (effect.Fade), puis une fois fermée, l'image qui se trouve dedans change,
(avec cette function:

function loadImage(bob, john){ //le lien genre:
 document.images[bob].src=john;
})

puis, une fois l'image changée, la div ce rouvre (effect.Appear).

si quelqu'un peu m'aider, ce serait super.

Salut

Annadrill

16 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
19 mars 2008 à 12:00
Bonjour,

    c'est quoi un "effect.fade" ou effet ajax ou affet ajxy ?

function loadImage(bob, john){
  fermer le div avec l'effet voulu;
 document.images[bob].src=john;
 réouvrir le div;
}

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
19 mars 2008 à 12:29
Salut, il serait sympas de préciser ce que tu utilises comme librairie Ajax ... si c'est Scriptaculous, dans les transitions tu as accès à une propriété : oncomplete :
exemple:
new Effect.Fade(
    document.getElementById('demo-all'),
    {
        oncomplete:function(){
           // Je fais ce que je veux ici une fois que la transition est finie (bah oui)
        }
    }
    );

Mais si ce n'est pas scriptaculous, je seche !

[o-_-o]
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
19 mars 2008 à 14:19
Salut,

Même remarque que [auteur/ZOBIBOL/2707.aspx Zobibol]. Ce n'est pas problème compliqué à résoudre mais il nous faudrait le type de 'framework' que tu utilises.
0
Annadrill Messages postés 147 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 22 novembre 2012
19 mars 2008 à 19:45
Rebonjour, merci des réponses si rapides, et excusez mon manque d'info...

alors j'utilise Scriptaculous

donc je pourrais faire qqch dans le genre:

new Effect.Fade(
    document.getElementById('demo-all'),
    {
        oncomplete:function(){ 
         function loadImage(bob, john){
         document.images[bob].src=john;
               }
         }
    }
    );

sauf que ensuite je sèche pour faire réapparaitre la div.
navré mais je suis encore qu'un petit novice dans le genre.

Merci

Annadrill
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
20 mars 2008 à 10:07
Re,

L'exemple suivant créé un fading de l'image, charge une nouvelle image, puis, lorsque celle-ci est chargée, la fait apparaitre.

new Effect.Fade('demo-all', {
            onComplete: function(){
                var newImg = new Image;
                newImg.onload = function(){
                    $('bob').src = newImg.src;
                    new Effect.Appear('demo-all');
                }
                newImg.src = 'url_image';
            }
});
0
Annadrill Messages postés 147 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 22 novembre 2012
20 mars 2008 à 11:47
Re,

alors merci déjà pour ça,
a vrais dire je peine à m'ensortir,
pour essayer d'être plus clair, voici ce que je veux faire:

avoir un lien(bouton) ou plusieurs qui contient l'url de l'image à changer, et qui, lorsque on clique dessus,
fait un fading de l'image que l'on voit, change l'image avec l'url contenue dans le lien,
puis puis fait apparaître l'image.

il me semble que le code au dessus devrait le faire mais je ne sais comment le manipuler.

ma fonction de base était:
   function loadImage(bob, john){
         //le lien genre:[#
 document.images[bob].src=john;
}

voici ma page:

<head>
<script type="text/javascript" src="scripts/prototype.js"></script>
<script type="text/javascript" src="scripts/scriptaculous.js"></script>
<script type="text/javascript" src="scripts/effects.js"></script>


<!--le script que je peine à comprendre-->

<script type="text/javascript">
function changeImage(one,two){
       new Effect.Fade('demo-all', {
                  onComplete: function() {
                      var newImg = new Image;
                         newImg.onload = function(){
                                   $('one').src = newImg.src;
                                   new Effect.Appear('demo-all');
                              }
                          newImg.src = 'two';
                       }
                });
}
</script>


</head>




<!--le bouton contenant l'id et l'url de l'image qui doit être chargée-->

]lebouton1

<!--la div contenant l'image-->



</html>
 
Merci pour l'aide
Annadrill
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
20 mars 2008 à 12:04
Voilà ta fonction "changeImage" generalisée :

function changeImage(imgTarget, imgUrl){
    new Effect.Fade(imgTarget, {
        onComplete: function(){
            var newImg = new Image;
            newImg.onload = function(){
            $(imgTarget).src = newImg.src;
                new Effect.Appear(imgTarget);
            }
            newImg.src = imgUrl;
        }
    });
}

Par contre, petite modif à faire :
0
Annadrill Messages postés 147 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 22 novembre 2012
20 mars 2008 à 13:16
Alors je me retrouve avec cela:

function changeImage(imgTarget, imgUrl){
    new Effect.Fade(imgTarget, {
        onComplete: function(){
            var newImg = new Image;
            newImg.onload = function(){
            $(imgTarget).src = newImg.src;
                new Effect.Appear(imgTarget);
            }
            newImg.src = imgUrl;
        }
    });
}

puis ensuite cela:

[# lebouton1]








et le résultat est une fenêtre avec cela: stack overflow at line: 0

et si je change l'effet par un BlindUp/BlindDown, l'image ce ferme mais ne se rouvre pas...

Annadrill
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
20 mars 2008 à 14:31
Re,

Vraiment désolé, j'ai fait une faute. Je m'en mèle les pinceaux avec tous ces frameworks... :(
Ce n'est pas 'onComplete' mais 'afterFinish'.

Je t'ai mis un exemple en ligne où tu pourras regarder la source :

http://siteecom.net/tmp/annadrill/index.html
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
20 mars 2008 à 14:33
oups, correction :

...Je m'emmèle les pinceaux ...
0
Annadrill Messages postés 147 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 22 novembre 2012
20 mars 2008 à 14:41
Re,

merci beaucoup, je te redis si c'est tout bon bientot, mais je pense que oui vu ton exemple!!!

encore merci et à bientot.

Annadrill
0
XtremDuke Messages postés 626 Date d'inscription samedi 28 septembre 2002 Statut Membre Dernière intervention 18 mai 2009 4
20 mars 2008 à 14:47
Pas de problème :)
0
Annadrill Messages postés 147 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 22 novembre 2012
25 mars 2008 à 23:16
Re bonjour,

comment ca va?

alors voila, je me posais une question,
ce que j'aimerai c'est modifier la fonction changeImage

function changeImage(imgTarget, imgUrl){
    new Effect.Fade(imgTarget, {
        onComplete: function(){
            var newImg = new Image;
            newImg.onload = function(){
            $(imgTarget).src = newImg.src;
                new Effect.Appear(imgTarget);
            }
            newImg.src = imgUrl;
        }
    });
}

avec celle ci:

function completLoader(titreTarget,titreContent,lienTarget,lienUrl,imgTarget,imgUrl,formTarget,formUrl){
 document.getElementById(titreTarget).innerHTML = titreContent; 
 document.getElementById(lienTarget).href = lienUrl;
 document.images[imgTarget].src = imgUrl;
 document.form.getElementById(formTarget).value = formUrl;
}

et avoir au final l'image qui disparaisse, toutes mes infos qui changent et puis l'mage qui réapparait.
je cherche à comprendre comment ajouter ces éléments à la fonction changeImage.

Bonne soirée

PS: estce que quelqu'un c'est si cet éditeur de texte javascript est gratuit, car il est vraiment bien...
Annadrill
0
jeanMOULIN54 Messages postés 32 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 14 octobre 2010
9 juin 2008 à 19:41
Bonjour, j'ai trouver ce sujet très intéressent :) j'aurai aimer savoir si quelqu'un pouvais me mettre des commentaire sur le script afin de bien comprendre toutes les lignes. Merci :)

le code :

<script type="text/javascript">
  var newImg = new Image;
 function ChangerImage(imgTarget, imgUrl){
  new Effect.Fade(imgTarget, {
   duration: .4,
   afterFinish: function(){
    newImg.onload = function(){
    $(imgTarget).src = newImg.src;
     new Effect.Appear(imgTarget);
    }
    newImg.src = imgUrl;
   }
  });
 }
</script>
0
Annadrill Messages postés 147 Date d'inscription mercredi 9 mai 2007 Statut Membre Dernière intervention 22 novembre 2012
11 juin 2008 à 09:53
<script type="text/javascript">//on ouvre la balise script hihi
  var newImg = new Image;// nouvelle variable newImg
 function ChangerImage(imgTarget, imgUrl){
//création de la fonction Changer Image qui recoit deux paramètres, imgTarget : le id de l'image et imgUrl: l'adresse de la nouvelle image
  new Effect.Fade(imgTarget, { //nouvel effet Fade sur l'image qui dure 4
   duration: .4,
   afterFinish: function(){ //losque c'est fait on fait la suite:
    newImg.onload = function(){ //on load la nouvelle image
    $(imgTarget).src = newImg.src;
     new Effect.Appear(imgTarget); //puis on fait réapparaitre l'image
    }
    newImg.src = imgUrl;
   }
  });
 }
</script>

exemple ici : www.sarah.ch/accueil.fr.php

salut
Annadrill
0
jeanMOULIN54 Messages postés 32 Date d'inscription mardi 16 octobre 2007 Statut Membre Dernière intervention 14 octobre 2010
11 juin 2008 à 15:55
Merci beaucoup :)
0
Rejoignez-nous