ďťż

Jquery problem: jedna animacja przerywa inną

       

Podstrony


telcocafe

Witam,

Mam dwa skrypty Jquery które animują te same elementy...
Pierwszy to http://www.newmediac...folio-like-ours
Sortuje elementy w portfolio (jednocześnie animując ich szerokość)

Drugi to prosty hover nad tymi elementami - zmienia przezroczystość...

Problem w tym, ze gdy jest uruchomiona pierwsza animacja (sortowanie) a ja najade na którys z animowanych elementów (drugi skrypt)... pierwsza animacja jest przerywana przez drugą... Jak dać "dokończyć" się im obu....?

P.S. w obu przypadkach animowany jest "ul.column li"

Pierwszy skrypt:
/* * Copyright (C) 2009 Joel Sutherland. * Liscenced under the MIT liscense */ (function($) { $.fn.filterable = function(settings) { settings = $.extend({ useHash: true, animationSpeed: 3000, show: { width: 'show', opacity: 'show' }, hide: { width: 'hide', opacity: 'hide' }, useTags: true, tagSelector: '#portfolio-filter a', selectedTagClass: 'current', allTag: 'all' }, settings); return $(this).each(function(){ /* FILTER: select a tag and filter */ $(this).bind("filter", function( e, tagToShow ){ if(settings.useTags){ $(settings.tagSelector).removeClass(settings.selectedTagClass); $(settings.tagSelector + '[href=' + tagToShow + ']').addClass(settings.selectedTagClass); } $(this).trigger("filterportfolio", [ tagToShow.substr(1) ]); }); /* FILTERPORTFOLIO: pass in a class to show, all others will be hidden */ $(this).bind("filterportfolio", function( e, classToShow ){ if(classToShow == settings.allTag){ $(this).trigger("show"); }else{ $(this).trigger("show", [ '.' + classToShow ] ); $(this).trigger("hide", [ ':not(.' + classToShow + ')' ] ); } if(settings.useHash){ location.hash = '#' + classToShow; } }); /* SHOW: show a single class*/ $(this).bind("show", function( e, selectorToShow ){ $(this).children(selectorToShow).animate(settings.show, settings.animationSpeed); }); /* SHOW: hide a single class*/ $(this).bind("hide", function( e, selectorToHide ){ $(this).children(selectorToHide).animate(settings.hide, settings.animationSpeed); }); /* ============ Check URL Hash ====================*/ if(settings.useHash){ if(location.hash != '') $(this).trigger("filter", [ location.hash ]); else $(this).trigger("filter", [ '#' + settings.allTag ]); } /* ============ Setup Tags ====================*/ if(settings.useTags){ $(settings.tagSelector).click(function(){ $('.column').trigger("filter", [ $(this).attr('href') ]); $(settings.tagSelector).removeClass('current'); $(this).addClass('current'); }); } }); } })(jQuery); $(document).ready(function(){ $('.column').filterable(); });

Drugi skrypt:
$(document).ready(function() { $('ul.column li').hover(function() { $(this).siblings().stop().fadeTo(500,0.7); }, function() { $(this).siblings().stop().fadeTo(500,1); }); });

Dzięki za pomoc!
Użytkownik pancho edytował ten post 27 listopad 2009, 09:23


stop() zatrzymuje animacje na elemencie. Musisz to w inny sposób rozwiązać. Zrób dwie funkcje, które będą zawierały $(this).siblings().stop().fadeTo(500,0.7);oraz$( this).siblings().stop().fadeTo(500,1);Teraz przypisz do funkcji w bibliotece w odpowiednich miejscach: przed rozpoczęciem animacji unbind() tych funkcji oraz po zakończeniu animacji hover() tych funkcji.
Raczej nic trudnego.
Użytkownik andrzej_aa edytował ten post 27 listopad 2009, 10:54
Dzięki za pomoc - ale chyba nie jestem jeszcze na tym stopniu zaawansowania :/
Moge cię prosić o bardziej szczegółowe rozwiązanie...

Wielki Thx.

Nie zwróciłem uwagi, że dałeś skrypt i nie przejrzałem go. To może inny sposób. Nie testowałem go, ale spróbuj tak:$(document).ready(function() { $('ul.column li').hover(function() { $('ul.column').not(':animated').children(this).siblings( ).stop().fadeTo(500,0.7); }, function() { $('ul.column').not(':animated').children(this).siblings( ).stop().fadeTo(500,1); }); });



dzieki dzieki... poszedlem pierwszym tropem, jako ze z Jquery zaczynam zajelo mi to dluzsza chwile...

Przed pierwsza animacja dodalem unbind() dla hover'a, a po jej zakonczeniu ponownie funkcja hover.

Dziala jak ta lala. Dzieki!

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.