JQuery: fonction utilisable qu'une fois

Résolu
Takushi Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Takushi Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'aimerais pouvoir lancer une fonction qu'une seule fois dans ma page. Je m'explique:

J'ai 4 blocs sur mon site. Chacun d'eux est caché et n'apparaissent que lorsque l'on scroll assez bas dans la fenêtre.
Ils apparaissent avec une ou plusieurs animations jQuery suivant leur contenu.

Mon problème est que lorsque je remonte dans la page et re-descend, le fonction qui est censée faire apparaitre ces blocs se relance.

J'aimerais donc trouver un moyen de ne lancer cette fonction qu'une seule fois.
J'ai fait pas mal de recherche sur internet sans vraiment trouver de réponse à mon problème. La plupart des sujets nous conseillent l'utilisation de .die(); mais dans mon cas, c'est une fonction que j'aimerais désactiver et pas une action comme 'click' ou 'hover'.

Voici mon code:

$('section .wrap').css('opacity','0'); // Cacher les sections
$(window).scroll(function(){
    display();
}); // Lancer la fonction display() lors du scroll
display(); // Lancer la fonction display() au chargement de la page

// Fonction qui affiche les sections suivant la position du scroll
function display(){
    posScroll = $(document).scrollTop();
    if(posScroll >= 0){
        accueil();
    }
    if(posScroll >= 80){
        produit();
    }
}

function accueil(){
    $('#Accueil .wrap').animate({opacity:1},800);
}
function produit(){
    $('#Produit .wrap').animate({opacity:1},800);
}

(J'ai réduit le code à l'essentiel)

J'ai aussi essayer de déclarer une variable comme ceci sans résultat:

function display(){
    var util1 = 0,
        util2 = 0;
    if(posScroll >= 0){
        if(util1 == 0){
            accueil();
            util1++;
        }
    }
    if(posScroll >= 80){
        if(util2 == 0){
            produt();
            util2++;
        }
    }
}



Merci d'avance pour votre aide.



2 réponses

jqueque
 
var actif = true;

taFonctionAuScroll()
{
    if(actif)
    {
        //tes anims
        actif = false;
    }
}
1
Takushi Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
Vous allez me prendre pour un idiot.
mes fonctions n'étaient pas dans le $(document).ready(function(){});

du coup il me retournait toujours que la variable n'existait pas.

En tout cas merci à toi jqueque.
0