Autor Zpráva
quatzael
Profil
Stáhl jsem si jQuery UI pro dynamické barevné přechody, ale nějak se to chová divně.
Čekal bych, že se barva postupně změní z aktuální na nově zadanou (např. z modrý na červenou - viz. příklad), ale ve skutečnosti to jde z bílý (nebo průhledný) na nově zadanou barvu.

Nevíte někdo prosím jak na to?

V kódu mám něco takovýho:
$("#input").css("border-color", "blue"); 
 $("#input").animate({
      borderColor: "red"
    },1000);
Taps
Profil
quatzael:
já problém nevidím, viz http://jsfiddle.net/SYg56/
quatzael
Profil
Taps:
No, nějak to nefunguje ve všech prohlížečích.
Ta Tvoje ukázka jede jenom v Mozille.

To co mám já na webu zase pro změnu jede správně jenom v Chromu. V IE a v Mozille to prostě na začátku animace problikne na bílou (případně transparent - mám bílý pozadí) a teprve potom se to z tý bílý začne vybarvovat..
_es
Profil
quatzael:
Asi budeš musieť namiesto metódy animate nastavovať priamo RGB hodnotu farby v nejakom cykle.
quatzael
Profil
_es:
Asi budeš musieť namiesto metódy animate nastavovať priamo RGB hodnotu farby v nejakom cykle.

Tím chceš říct, že ta metoda animate opravdu nefunguje v různých prohlížečích jak má a není jiné řešení?
Chamurappi
Profil
Reaguji na quatzaela:
Řekl bych, že tento problém úzce souvisí s tím předchozím — jQuery .css - zjištění border-color nefunguje — když nedokáže barvu zjistit, nedokáže ani provést animaci z této barvy do jiné.

Stáhl jsem si jQuery UI pro dynamické barevné přechody
Ona není animate v samotném jQuery? Netušil jsem.
quatzael
Profil
Chamurappi:
Řekl bych, že ...“, „Netušil jsem.
Vzhledem k Tvému častému sarkastickému vyjadřování si nejsem jistý, jestli tohle myslíš vážně nebo to je jen zase další narážka..
Víš přesně jak to je nebo teda opravdu ne?

Podle mého názoru je to takhle:
když nedokáže barvu zjistit, nedokáže ani provést animaci z této barvy do jiné.
Barvu zjistit by dokázal, ale problém je ten, že když může mít každý border jinou barvu, tak je to nejednoznačné. Proto to nefunguje.
Ale v případě přiřazení barvy na celý border (tedy přes border-color) není důvod proč to nepřiřadit na všechny, takhle to funguje normálně v CSS i přes javascript (jen přímo u té animace ne)..

Ona není animate v samotném jQuery? Netušil jsem.
animate tam je, jen právě nedokáže ten přechod s barvami.. proto ten doplněk.
Chamurappi
Profil
Reaguji na quatzaela:
Víš přesně jak to je nebo teda opravdu ne?
Těžko říct. Mimochodem, za oznamovací větou se píše jedna tečka.

Barvu zjistit by dokázal, ale problém je ten, že když může mít každý border jinou barvu, tak je to nejednoznačné.
V čem spočívá nejednoznačnost? Může přece animovat všechny, každou stranu zvlášť. Ale pokus o přečtení border-color selže z důvodu, který jsem popisoval před měsícem.

animate tam je, jen právě nedokáže ten přechod s barvami
Kolik desítek kB je na něco takového potřeba?

V čistém JS bych animaci z červeného okraje na modrý napsal třeba takto:
var start = +new Date();
var interval = setInterval(function()
{
  var delta = (new Date() - start) / 1000;
  if(delta > 1)
  {
    delta = 1;
    clearInterval(interval);
  }
  document.getElementById("input").style.borderColor = "rgb(" + delta * 255 + ", 0, " + (1 - delta) * 255 + ")";
}, 13);
quatzael
Profil
Chamurappi:
Těžko říct.
To jsem se zase dozvěděl..

V čem spočívá nejednoznačnost? Může přece animovat všechny, každou stranu zvlášť. Ale pokus o přečtení border-color selže z důvodu, který jsem popisoval před měsícem.
Vždyť nepíšu vůbec nic jinýho.

Kolik desítek kB je na něco takového potřeba?
Žádný desítky. 6,44 kB

V čistém JS bych animaci z červeného okraje na modrý napsal třeba takto:
Moc to nefunguje.. Spíš vůbec. Buď se tam objeví ta modrá a bez nějakýho přechodu to skočí na tu červenou nebo to rovnou hodí červenou bez modrý.
Chamurappi
Profil
Reaguji na quatzaela:
Moc to nefunguje.. Spíš vůbec.
Některé prohlížeče potřebují zaokrouhlené hodnoty v rgb. S Math.floor to funguje všude, ne?
margin
Profil *
Chamurappi:
Některé prohlížeče potřebují zaokrouhlené hodnoty v rgb.
CSS specifikace praví, že RGB může být integer nebo procenta. takže desetinné hodnoty v procentech by měly fungovat napříč prohlížeči, ale ověřené to mám jen v menším, než malém množství prohlížečů.
quatzael
Profil
Chamurappi:
Supr, díky. Tohle už vypadá, že opravdu funguje.. Teď to ještě budu muset nějak upravit, aby mi tam jely moje vlastní barvy..

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0