Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154

    [jquery] rimuovere animazioni create in precedenza

    Ciao a tutti, come da titolo, vorrei rimuovere le animazioni che ho impostato in precedenza su alcuni elementi. In pratica, al click di un pulsante mpodifico alcuni elementi; al click di un altro pulsante vorrei riportare tutto come prima. Ho provato con bind, ma funziona solo per avviare il tutto, non riesco a riportare tutto come era prima.
    codice:
    schermo_intero=function () {
    			altezza_finestra=jQuery(window).height();
    			altezza_header=jQuery('#header').height();
    			altezza_finale=altezza_finestra-altezza_header;
    			larghezza=jQuery(window).width();
    			jQuery('#content, #push, #bottom_utils, #footer').fadeOut("slow");
    			jQuery('#container').css('background', 'none');
    			jQuery('#map_wrapper, #map_container').animate({'width' : '100%' , 'height' : altezza_finale}, 1500);
    			jQuery('#map').animate({'overflow' : 'visible' , 'width' : '100%' , 'height' : '100%'}, 1500);
    			jQuery('#map_exit_full_screen').fadeIn("slow");
    		};
    		jQuery('#map_full').bind("click", schermo_intero);
    		jQuery('#map_exit_full_screen').unbind("click", schermo_intero);
    Ho provato anche .on e .off al posto di .bind e .unbind ma niente. Grazie in anticipo a chi vorrà darmi una mano.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    setti il bind su un elemento, ma l' unbind su un altro elemento, non puo' essere corretto

    prova qualcosa tipo

    jQuery('#map_exit_full_screen').bind('click',funct ion(){
    jQuery('#map_full').unbind("click", schermo_intero);
    })

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    Ciao e grazie per la risposta. Ci ho messo un pò a risponderti perchè ho provato il codice che mi hai suggerito ma non sono riuscito a farlo funzionare.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    Niente da fare. Ho provato in mille modi diversi ma niente. Nessuno ha una soluzione o uno spunto?

  5. #5

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    Ho provato il codice che mi hai indicato, a dire il vero avevo già provato in quel modo in precedenza:
    codice:
    function schermo_intero () {
    			altezza_finestra=jQuery(window).height();
    			altezza_header=jQuery('#header').height();
    			altezza_finale=altezza_finestra-altezza_header;
    			larghezza=jQuery(window).width();
    			jQuery('#content, #push, #bottom_utils, #footer').fadeOut("slow");
    			jQuery('#container').css('background', 'none');
    			jQuery('#map_wrapper, #map_container').animate({'width' : '100%' , 'height' : altezza_finale}, 1500);
    			jQuery('#map').animate({'overflow' : 'visible' , 'width' : '100%' , 'height' : '100%'}, 1500);
    			jQuery('#map_exit_full_screen').fadeIn("slow");
    			
    		};
    		
    		jQuery('#map_full').bind('click', schermo_intero);
    			jQuery('#map_exit_full_screen').click(
    				function() {
    				jQuery('#map_full').unbind('click', schermo_intero)
    				});
    Ma non funziona. Mi domando se il metodo .bind è quello che fà al caso mio. Come si vede dal codice, al click su un pulsante nascondo alcuni elementi e mando a pieno schermo altri elementi settando le proprietà css width e height. Quello che mi manca è che cliccando su un altro pulsante tutto torni allo stato originario.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    unbind di disabilita l'evento, non è che ti riporta tutto com'era prima... per fare questo ti devi creare una funzione custom che faccia l'opposto della funzione schermo_intero, oppure modifichi la funzione schermo_intero in modo che gestisca entrambi i casi

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    Si infatti avevo letto bene il funzionamento di unbind e mi ero accorto di quello che mi hai detto.
    Sto infatti provando a fare una funzione che mi riporti tutto allo stato originale.
    codice:
    jQuery('#map_bottom_buttons, #content, #push, #bottom_utils, #footer').fadeIn();
    			jQuery('#map_wrapper').animate('margin', '18px');
    			jQuery('#container').animate('background', '#000066');
    			jQuery('#map_wrapper, #map_container').animate({'width' : '940' , 'height' : '560'}, 1500);
    			jQuery('#map').animate({'overflow' : 'hidden' , 'width' : 940' , height : '560'}, 1500);
    			jQuery('#map_exit_full_screen').fadeOut("slow");
    Ma non mi sembra questo il metodo migliore.
    Dovrei semplicemente rimuovere tutti gli stili impostati in precedenza, ma non ho proprio idea di come si possa fare.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    Originariamente inviato da j4ck455
    Dovrei semplicemente rimuovere tutti gli stili impostati in precedenza, ma non ho proprio idea di come si possa fare.
    Non mi pare proprio cosi, se non ho capito male gli stili che c'erano di default vengono sovrascritti/modificati dalla funzione schermo_intero, quindi se li rimuovi semplicemente non tornerai allo stato iniziale. Devi modificarli nuovamente impostando gli stili di default, detto questo il metodo che hai utilizzato mi sembra corretto.

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    154
    Si ma gli stili originali sono nei css, mentre quelli che aggiungo con jquery vengono scritti nell'attributo style. Ecco perchè dico che non mi sembra corretto e vorrei semplicemente rimuovere quelli che ho aggiunto piuttosto che riscriverli di nuovo. Comunque visto che non trovo altre soluzioni faro così.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.