692 messaggi dal 11 febbraio 2013
ho una gallery di immagini
e vorrei che lo slide al click del bottone parta solo quando l'evento precedentemente chiamato è terminato.

ho provato diverse strade ma non va

//EVENTS ***
btnNext.on("click", SwitchToNext);

function SwitchToNext() {

              if (galleryImage.hasClass("js-sliding")) {
                  return;
              } else {
                  galleryImage.addClass("js-sliding");
                  StopSlider();
                  currentPage = currentPage === myArrImages.length - 1 ? 0 : currentPage + 1;
                 
                  galleryImage.stop().hide('slide', { direction: 'left' }, function () {
                      
                      ResetGallery();
                      galleryImage.attr("src", myArrImages[currentPage]);
                      galleryImage.stop().show('slide', { direction: 'left' }, 1500);
                  }, 1500);                 
              }
              galleryImage.removeClass("js-sliding");
          }


percui se faccio due click vicini vedo che lo slide parte due volte
e l'immagine va fuori margine

ora sono alle prime armi ma vorrei capire perchè la chiamata (detta callback) non parte quando effettivamente
l'evento precedente è terminato
grazie per l'aiuto e la pazienza
Modificato da jjchuck il 06 aprile 2018 09.42 -
10.966 messaggi dal 09 febbraio 2002
Contributi
Ciao, l'approccio che stai usando è valido: aggiungi una classe js-sliding all'elemento e la togli al termine dell'animazione. Il problema è che la stai togliendo troppo presto.

Questa istruzione qui messa al termine dell'animazione.
galleryImage.removeClass("js-sliding");


Quindi per esempio, solo dopo che lo show ha sortito il suo effetto.
galleryImage.stop().show({
  duration: 1500,
  easing: 'slide',
  complete: function() {
     galleryImage.removeClass("js-sliding");
    }
  }
);


Non so se ho beccato la corretta invocazione del metodo show però, il succo del discorso è che devi togliere la classe solo al termine dell'animazione.

ciao,
Moreno
Modificato da BrightSoul il 06 aprile 2018 13.45 -

Enjoy learning and just keep making
692 messaggi dal 11 febbraio 2013
Grazie...
avrei dovuto arrivarci

ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.