Autor | Zpráva | ||
---|---|---|---|
Tori Profil |
#1 · Zasláno: 20. 10. 2011, 22:10:01
Pěkný večer.
Zkoušela jsem udělat běžící titulek okna, jako upozornění pro nějaký chat. Přes window.setInterval je volaná funkce, co odkrajuje písmenka ze začátku a lepí je na konec titulku. Časování ale běží různou rychlostí: když nechám na vrchu záložku s tím běžícím titulkem a přes ni otevřu jiné okno, tak text na záložce i dole na liště otevřených programů běží správně. Když ale místo toho přepnu na jinou záložku, tak se titulek toho "chatu" posunuje o hodně pomaleji. Poradíte prosím, čím to je? Díky moc. Ukázka. |
||
okolojdouci Profil * |
#2 · Zasláno: 20. 10. 2011, 22:14:43
Nechci vypadat jako kverulant, ale myslím, že mi to v opeře nefunguje.
|
||
Tori Profil |
#3 · Zasláno: 20. 10. 2011, 22:16:24 · Upravil/a: Tori
okolojdouci:
Á, moje chyba, zkoušela jsem jen Chrome a Firefox (7). |
||
okolojdouci Profil * |
#4 · Zasláno: 20. 10. 2011, 22:17:49
Přičemž "nefunguje" znamená, že text se ani nehne. Po dvou minutách zírání mi to kino začalo připadat trochu fádní.
|
||
Str4wberry Profil |
#5 · Zasláno: 20. 10. 2011, 22:24:58
Co použít raději jiné upozornění na změnu stavu?
(Pokud je podstatou vlákna pouze odlišná rychlost intervalu, berte můj příspěvek jako bezpředmětný.) |
||
Tori Profil |
#6 · Zasláno: 20. 10. 2011, 22:57:06 · Upravil/a: Tori
okolojdouci:
V Opeře mi to taky šlo, ale zas až příliš rychle. :D (Btw změnila jsem to automatické spouštění na ruční - takže zkuste spustit a pak přepnout na jiný tab.) Str4wberry: Ano, podstatou dotazu bylo, že nerozumím tomu, proč časovač ve stejném prohlížeči i okně běží různými rychlostmi. Za odkaz děkuju, pouvažuju nad alternativami. Běžící titulek mi napadl jen proto, že jsem to viděla použité v podpoře na hostingu a nevypadalo to zle. |
||
_es Profil |
#7 · Zasláno: 20. 10. 2011, 23:04:27
Tori:
Nechce sa mi rozoberať ten kód, vyzerá to chaoticky. Tipol by som si, že nejako dochádza k mnohonásobnému spusteniu viacerých časovačov. Mala by si zabezpečiť, aby ten časovač bežal len raz, napríklad nejako takto: var t = null, perioda = 100; function animacia(){ Kód na zmenu titulku okna } function startAnimacie(){if(t === null) t = setInterval(animacia, perioda))} function koniecAnimacie(){clearInterval(t); t = null} |
||
Tori Profil |
#8 · Zasláno: 20. 10. 2011, 23:47:58 · Upravil/a: Tori
_es:
To jsem tam měla, pak jsem to omylem zakomentovala, už je to zpět: this.start = function(newTitle) { if (that.loop == null) { var t = newTitle || that.title; t += ' '; that.loop = window.setInterval( function() { document.title = t; t = t.substr(1)+t.charAt(0); }, 100); } }; |
||
_es Profil |
#9 · Zasláno: 21. 10. 2011, 00:11:51
Tori:
Aký význam tam majú vlastnosti active , setActive a setUnactive ?
Na čo tak zložito priraďuješ udalosti okna onfocus a onblur , keď window.onfocus a window.onblur spoľahlivo fungujú vo všetkých prehliadačoch?
Na môj vkus tam je toho objektového obalu nejako priveľa a namiesto zjednodušenia to je skôr skomplikovanie. |
||
Tori Profil |
#10 · Zasláno: 21. 10. 2011, 00:33:12
_es:
„Aký význam tam majú vlastnosti active“ Stav toho okna, jestli je momentálně aktivní nebo ne. Nenašla jsem žádnou vlastnost objektu window, ze které bych to snadno zjistila, takže mi napadlo přepínat handlerama. Asi je to overkill, že? „, setActive a setUnactive?“ To je asi zbytečné, pravda; nevhodná aplikace DRY. „Na čo tak zložito priraďuješ udalosti okna?“ Pro případ, že by se to mělo použít někde, kde už je na window.onfocus pověšený jiný handler, tak aby se ten původní nepřepsal, ale nicméně aby to fungovalo i ve starém prohlížeči, který zná jen window.onfocus. (Ale když je to teda ok, tak jsem ty ostatní varianty dala pryč a nechala jen window.on*). Děkuju za ochotu se v tom povrtat. :-) |
||
Časová prodleva: 12 let
|
0