Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Problem z pluginem jquery "color animation"
kuna11
post
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 15.09.2013

Ostrzeżenie: (0%)
-----


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źć.)
Go to the top of the page
+Quote Post
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Na pewno nie w tym skrypcie są zdefiniowane kolory graniczne.
(Ten efekt, wedle rozumienia Twojego opisu, można uzyskać za pomocą CSS).

Ten post edytował trueblue 21.11.2014, 18:23:37
Go to the top of the page
+Quote Post
kuna11
post
Post #3





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 15.09.2013

Ostrzeżenie: (0%)
-----


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ę...
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
kuna11
post
Post #5





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 15.09.2013

Ostrzeżenie: (0%)
-----


Ok, dzięki za info!
Jak coś znajdę dam znać.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.08.2025 - 02:24