+ Antworten
Ergebnis 1 bis 3 von 3

Thema: sequentiell animate nacheinander

  1. #1
    TP-Junior froemken macht alles soweit korrekt
    Registriert seit
    Jul 2009
    Ort
    dem Oberbergischen
    Beiträge
    5

    sequentiell animate nacheinander

    Hallo zusammen,

    einen Beitrag zu diesem Thema habe ich hier zwar schon gefunden, komm damit aber nicht weiter.

    Code:
    $('#categorySelect').change(function() {
    	if($(this).val() != '') {
    		/*$('div.productDownloadsRow:visible').fadeOut().removeClass('even');
    		$('div.productDownloadsRow').filter('div[title=' + $(this).val() + ']').filter('div:even').addClass('even').end().fadeIn();*/
    		$('div.productDownloadsRow:visible').animate({
    			opacity:'toggle',
    			height:'toggle'
    		}, 'slow', 'linear', function() {
    			$('div.productDownloadsRow').filter('div[title=' + $(this).val() + ']').filter('div:even').addClass('even').end().animate({opacity:'toggle',height:'toggle'}, {duration:'slow',queue:true});
    		}).removeClass('even');
    	} else {
    		$('div.productDownloadsRow').filter('div:visible').animate({opacity:'toggle',height:'toggle'}, {duration:'slow',queue:true}).removeClass('even').end().filter('div:even').addClass('even').end().animate({opacity:'toggle',height:'toggle'}, {duration:'slow',queue:true});
    	}
    });
    categorySelect ist eine SelectBox und wenn etwas ausgewählt wurde, dann sollen erstmal alle sichtbaren divs (productdownloadrow) ausgeblendet werden und DANACH sollen alle divs (productdownloadrow), die im Titel gleich sind, wie der Eintrag in der Selctbox wieder eingeblendet werden.

    Sämtliche Beispiele im Internet zeigen dieses "nacheinander" immer mit nur EINEM div. Ich blende hier aber gleichzeitig ca 8 Elemente aus und blende danach 3 Elemente wieder ein.

    Ich hab hier mal meinen Versuch Nummer xx gelistet mit dem Callback. Allerdings wird der Callback Dank meiner mehreren DIVs auch mehrfach aufgerufen. Fazit: Es wird nur ausgeblendet aber nicht mehr eingeblendet.

  2. #2
    TP-Junior froemken macht alles soweit korrekt
    Registriert seit
    Jul 2009
    Ort
    dem Oberbergischen
    Beiträge
    5
    Bin einen Schritt weiter. Hab das Script so abgeändert, dass nur bei dem letzten Element in der Liste die Callback-Funktion aufgerufen wird.
    Wenn allerdings wieder alle Elemente angezeigt werden sollen, dann springt die Liste ca. 8 mal rauf und runter. Heißt für mich: Im "else" ganz unten muss ich auch noch etwas rumtricksen, damit die Callback-Funktion nur beim letzten Element ausgeführt wird.

    Naja...mit "do less" hat das mitlerweile nix mehr zu tun...

    Code:
    $('#categorySelect').change(function() {
    	if($(this).val() != '') {
    		var length = $('div.productDownloadsRow:visible').length;
    		for(var i = 0; i < length; i++) {
    			if((i + 1) == length) {
    				$('div.productDownloadsRow:visible').eq(i).animate({
    					opacity:'toggle',
    					height:'toggle'
    				}, 'slow', 'linear', function() {
    					$('div.productDownloadsRow').filter('div[title=' + $('#categorySelect').val() + ']').filter('div:even').addClass('even').end().animate({opacity:'toggle',height:'toggle'}, {duration:'slow',queue:true});
    				}).removeClass('even');
    
    			} else {
    				$('div.productDownloadsRow:visible').eq(i).animate({opacity:'toggle', height:'toggle'}, 'slow', 'linear').removeClass('even');
    			}
    		}
    	} else {
    		$('div.productDownloadsRow').animate({opacity:'toggle',height:'toggle'}, 'slow', 'linear', function() {
    			$('div.productDownloadsRow').animate({opacity:'toggle',height:'toggle'}, 'slow', 'linear');
    		}).removeClass('even').end().filter('div:even').addClass('even');
    	}
    });

  3. #3
    TP-Junior froemken macht alles soweit korrekt
    Registriert seit
    Jul 2009
    Ort
    dem Oberbergischen
    Beiträge
    5
    Hab die Lösung nach langem Suchen endlich gefunden:

    http://stackoverflow.com/questions/2...le-animations/

    Code:
    	$('#categorySelect').change(function() {
    		if($(this).val() != '') {
    			$('div.productDownloadsRow').fadeOut('slow', function() {
    				if($('div.productDownloadsRow:animated').length === 1) {
    					$('div.productDownloadsRow').removeClass('even').filter('div[title=' + $('#categorySelect').val() + ']').filter('div:even').addClass('even').end().fadeIn('slow');
    				}
    			});
    		} else {
    			$('div.productDownloadsRow').fadeOut('slow', function() {
    				if($('div.productDownloadsRow:animated').length === 1) {
    					$('div.productDownloadsRow').removeClass('even').filter('div:even').addClass('even').end().fadeIn('slow');
    				}
    			});
    		}
    	});
    Geändert von froemken (04.08.2010 um 15:49 Uhr) Grund: Kommentare braucht hier keiner

+ Antworten

Ähnliche Themen

  1. jquery: animate & hide
    Von joextra im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 10.12.2009, 11:35
  2. Display:none - bei animate() wird nicht angenommen
    Von Stefan im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 09.09.2009, 13:00
  3. animate funzt in Safari und Chrome nicht
    Von Guitar im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 21.06.2009, 01:20
  4. mc´s nacheinander abspielen
    Von papa_sting im Forum Flash & Multimedia
    Antworten: 2
    Letzter Beitrag: 26.02.2003, 19:17
  5. setcookie() und header() nacheinander
    Von Paulchen im Forum Traum-Dynamik
    Antworten: 0
    Letzter Beitrag: 01.08.2002, 13:00

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51