Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Problem z pluginem jquery "color animation"
Forum PHP.pl > Forum > Przedszkole
kuna11
Mam stronkę i menu, które po najechaniu myszką (hover) zmienia kolor.
Problem polega na tym, że ten kolor nie zmienia się błyskawicznie tylko płynnie za pomocą skryptu (widać przejścia tonalne).

Zlokalizowałem sktypt odpowiadający za to, nazywa się jquery.animate-colors-min.js.

Skrypt wygląda tak:

  1. (function(d){function i(){var b=d("script:first"),a=b.css("color"),c=false;if(/^rgba/.test(a))c=true;else try{c=a!=b.css("color","rgba(0, 0, 0, 0.5)").css("color");b.css("color",a)}catch(e){}return c}function g(b,a,c){var e="rgb"+(d.support.rgba?"a":"")+"("+parseInt(b[0]+c*(a[0]-b[0]),10)+","+parseInt(b[1]+c*(a[1]-b[1]),10)+","+parseInt(b[2]+c*(a[2]-b[2]),10);if(d.support.rgba)e+=","+(b&&a?parseFloat(b[3]+c*(a[3]-b[3])):1);e+=")";return e}function f(b){var a,c;if(a=/#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/.exec(b))c=
  2. [parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16),1];else if(a=/#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])/.exec(b))c=[parseInt(a[1],16)*17,parseInt(a[2],16)*17,parseInt(a[3],16)*17,1];else if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b))c=[parseInt(a[1]),parseInt(a[2]),parseInt(a[3]),1];else if(a=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9\.]*)\s*\)/.exec(b))c=[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10),parseFloat(a[4])];return c}
  3. d.extend(true,d,{support:{rgba:i()}});var h=["color","backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","outlineColor"];d.each(h,function(b,a){d.fx.step[a]=function(c){if(!c.init){c.a=f(d(c.elem).css(a));c.end=f(c.end);c.init=true}c.elem.style[a]=g(c.a,c.end,c.pos)}});d.fx.step.borderColor=function(b){if(!b.init)b.end=f(b.end);var a=h.slice(2,6);d.each(a,function(c,e){b.init||(b[e]={a:f(d(b.elem).css(e))});b.elem.style[e]=g(b[e].a,b.end,b.pos)});b.init=true}})(jQuery);


Niestety, za chiny nie mogę znaleźc tego jak wprowadzić kolor, który ma się docelowo wyświetlać.
Jak widać w tym skrypcie wszędzie pojawia się parametr "color".

Czy ktoś wie jak zdefiniować wstępnie tą 'zmienną' "color" ?
Chyba trzeba dodać na początku coś w styli var color="" , ale jak to dokładnie powinno wyglądać ?
(to musi być gdzieś indziej zdefiniowane, ale jak mówię nie mogę tego znaleźć.)
trueblue
Na pewno nie w tym skrypcie są zdefiniowane kolory graniczne.
(Ten efekt, wedle rozumienia Twojego opisu, można uzyskać za pomocą CSS).
kuna11
Ale, ten skrypt odpowiada za ich wyświetlanie. Jak go usunę to kolory zniakają (nie ma przejść).
Myślełem, że wystarczy tutaj dodać jakiś parametr, skoro to tutaj się wszystko dzieje.
Poszukam, po css tak jak sugerujesz, może coś znajdę...
trueblue
Przejścia znikają, bo...usunąłeś skrypt odpowiedzialny za animację.
Poszukaj w kodzie js słów: hover, mouseout, mouseleave, mouseover...

Zasugerowałem, że to można wykonać bez JS, tylko w CSS, ale u Ciebie tak nie jest.
kuna11
Ok, dzięki za info!
Jak coś znajdę dam znać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.