Un code en jquery qui permet de d'incrémenter un valeur et réinitialise [Résolu]

Messages postés
77
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
23 septembre 2019
-
Bonjour,
Je sollicite votre aide, en fait j'aimerais juste avoir un code qui s'incrémente lorsqu'on scroll le document et se réinitialise quand la valeur atteint la valeur 10 par exemple, puis après avoir réinitialisé à zéro la valeur s'incrémente de nouveau puis se réinitialise quand elle atteint la valeur 10 et ainsi de suite...
Ce que je veux c'est en jquery quelque chose du genre

if scroll {
   top=top+1
   if top=10 {
     top=0
    if scroll{
      top=top+1
       if top=10{
          top=0
       }
       .....et ainsi de suite
    }

 } 
}


Configuration: Windows / Firefox 65.0
Afficher la suite 

1 réponse

Messages postés
3471
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
23 septembre 2019
914
0
Merci
Bonjour,

Ce qui peut t'aider, c'est le modulo (% en javascript).
Si tu écris
{
    top++;
    top = top % 10;
}

, tu es sûr que top sera incrémenté et que sa valeur sera toujours ramenée à 0 quand elle atteindra 10.

Xavier
rasielblas
Messages postés
77
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
23 septembre 2019
-
Merci votre code fonctionne mais ce que j'aimerais c'est qu'après initialisation la valeur ne s'incrémente que lorsqu'il y a un évènement qui le déclenche par exemple si on clique alors la valeur augmente et une fois arrivé à 10 alors la valeur s'initialiste a zéro et s'arrête, mais quand on clique de nouveau alors la valeur s'incrémente de nouveau et ainsi de suite...
Reivax962
Messages postés
3471
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
23 septembre 2019
914 -
Il suffit de mettre ce code dans le code de ton événement... Je ne comprends pas ce qui te bloque ?
Montre-moi ton code, pour que je puisse te dire précisément où le mettre.

Xavier
rasielblas
Messages postés
77
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
23 septembre 2019
-
Bon c'est d'accord mais c'est un peu complexe à expliquer! En fait j'ai un code en jquery qui permet de récupérer la centre du document, car j'ai un bouton qui permet de créer un élément texte dans un pdf. Et ce que je veux c'est qu'une fois que le texte est créer elle se positionne toujours au centre de la document. Mais le problème c'est quand je scrolle alors je perd le centre du document. Et j'ai créer ce code qui permet de récupérer la centre de la document et j'aimerais que ce valeur se réinitialise à chaque changement de la page. Voici mon code:

$('#mainContainer').scroll(function(event){
        
  // Valeur de defilement lors du chargement de la page
  windowScroll = $('#mainContainer').scrollTop();
   
  // Mise a jour du positionnement en fonction du scroll
  if( windowScroll >= fixedLimit ){
                        obtenirlecentredelapage =LAST_SCROLL_OFFSET;
             
   var topPos   = $("#rocket_dummy")[0].getBoundingClientRect().top  
        //console.log(topPos);
   //alert(LAST_SCROLL_OFFSET);
   rocket.addClass('fixed');
  } else {
   rocket.removeClass('fixed');
  }
  if( rocket.hasClass('fixed') ){
   if( windowScroll > LAST_SCROLL_OFFSET ){
    // DOWN
    firetop.addClass('on');
    firebottom.removeClass('on');
   } else {
    // UP
    firetop.removeClass('on');
    firebottom.addClass('on');
   }
  }
  
  // Arret
  setTimeout(function(){
   if( new Date().getTime() - LAST_SCROLL_TIME > 50 ){
    firetop.removeClass('on');
    firebottom.removeClass('on');
   
   }
  },70);
  
  // Mise a jour variables
  //LAST_SCROLL_OFFSET = windowScroll;
 });


Ce code permet d'obtenir la centre de la document et voici la résultat en mode console:



Comme vous le voyez sur cette image la valeur du centre s'incrémente lorsqu'on scrolle la page, et je veux qu'une fois arrivé à la page numéro 2 alors la valeur se réinitialise à zéro et lorsqu'on scrolle la page numéro 2 alors elle s'incrémente depuis zéro jusqu'à la page numéro 3. Et ainsi de suite.

Donc voici le code à rectifier et à insérer:

 if(obtenirlecentredelapage> 1016){
                    
                           obtenirlecentredelapage=0;
               
               }


Ouf c'est un peu beaucoup tous cela mais j'espère que vous avez compris! :-)
rasielblas
Messages postés
77
Date d'inscription
jeudi 20 mars 2014
Statut
Membre
Dernière intervention
23 septembre 2019
-
Ca y est, j'ai réussi à faire fonctionner mon code correctement avec votre super modulo! Voici mon code final:

 if(obtenirlecentredelapage> 1132){
                            function resetScrollPos(selector) { 
                            var divs = document.querySelectorAll(selector); 
                                    for (var p = 0; p < divs.length; p++) { 
                                            if (Boolean(divs[p].style.transform)) 
                                            { 
                                                    console.log("mande");
                                            }
                                                     else {
                                                    obtenirlecentredelapage=obtenirlecentredelapage%1016;
                                                    
                                        } 
                              } 
                            } 
                            resetScrollPos('#mainContainer'); 


Merci beaucoup pour votre aide, je marque cette discussion résolu est à la prochaine, merci encore ;-)
Commenter la réponse de Reivax962