Visualizzazione dei risultati da 1 a 5 su 5

Discussione: jQuery .animate

  1. #1

    jQuery .animate

    Buonasera a tutti!
    Vi riporto subito il codice per farmi capire meglio:

    <script>
    $(document).ready(function() {
    $('#btn1').click(function() {
    $('#id').animate({
    'marginLeft' : "-=200px"},"fast");
    </script>

    Con questo pezzo di codice riesco a spostare un div verso sinistra di 200px ogni volta che clicco il pulsante, la mia domanda è: come faccio a dargli un limite? per esempio dirgli di togliere 200px alla posizione finchè la posizione non è uguale a -1000px.
    Non so più dove mettere mano

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,696
    Ciao, si potrebbe risolvere in vari modi a seconda di ciò che vuoi ottenere esattamente.

    In linea di massima potresti usare una semplice condizione per verificare se il valore di marginLeft è maggiore di -1000, quindi in tal caso sarà eseguita l'animazione:
    codice:
    $('#btn1').click(function(){
      if(parseInt($('#id').css('marginLeft'))>-1000)
        $('#id').animate({'marginLeft':'-=200px'},'fast');
    });

  3. #3
    Grazie mille!
    Funziona se prima di ogni click aspetto che l'animazione sia compiuta, se invece clicco velocemente sul pulsante che sposta il div il parametro non viente rispettato, perchè?

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,696
    Giusto, perché se clicchi durante l'animazione sarà preso, come valore di riferimento, quello corrente che è un valore intermedio, quindi il confronto risulterà sfasato all'interno di quella condizione.

    Dipende ancora da cosa ti interessa ottenere esattamente.

    Puoi risolvere, ad esempio, impedendo che l'animazione abbia effetto se si clicca mentre c'è già un'animazione in corso.
    Puoi fare una cosa del genere:
    codice:
    $('#btn1').click(function(){
      if(parseInt($('#id').css('marginLeft'))>-1000)
        $('#id:not(:animated)').animate({'marginLeft':'-=200px'},'fast');
    });

  5. #5
    Non devo fare nulla di particolare, voglio solamente capire il funzionamento di javaScript/jQuery
    Ora voglio cercare di far spostare il div ogni tot di secondi, molto probabilmente mi servirà ancora aiuto, grazie ancora!

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.