Autor | Zpráva | ||
---|---|---|---|
Devfrost Profil |
#1 · Zasláno: 8. 4. 2015, 07:31:27
Dobrý den,
měl bych prosbu chtěl bych si na stránky dát měnící se banner kde se bude měnit pár fotek a v nich odkaz. Sice jsem našel na webu par odkazů a příkladů, které jsem i odzkoušel ale třeba "addblock" mi je blokoval jako reklamy... nemá někdo odzkoušené řešení.... |
||
Keeehi Profil |
#2 · Zasláno: 8. 4. 2015, 09:13:13
Chceš jen čisté CSS? Půjde to, ale podpora je bídná.
Největší podporu bude mít asi animovaný gif. Po něm následuje animace pomocí javascriptu. Máš to ale v kategorii CSS tak nevím jestli o to stojíš. |
||
Joker Profil |
#3 · Zasláno: 8. 4. 2015, 09:18:54
Keeehi:
„Největší podporu bude mít asi animovaný gif.“ Jak ale u animovaného gifu zajistím, aby správná fotka vedla na správný odkaz? |
||
Devfrost Profil |
#4 · Zasláno: 8. 4. 2015, 09:26:19
Keeehi:
Ahoj nemusí to být čistě CCS ale chtěl jsem aby to fungovalo na co nejširším spektru prohlížečů zatím používam tudle "zběsilost" na testovací stránce ..... ale právě třeba addblock to nemilosrdně zařízne <script type="text/javascript"> var imgs1 = new Array("logo.jpg","logoa.jpg","logob.jpg","logoc.jpg"); var lnks1 = new Array("http://www.odkaz.cz","http://www.odkaz2.cz/","http://www.odkaz3.cz"); var alt1 = new Array("test1","test2","test3"); var currentAd1 = 0; var imgCt1 = 4; function cycle1() { if (currentAd1 == imgCt1) { currentAd1 = 0; } var banner1 = document.getElementById('adBanner1'); var link1 = document.getElementById('adLink1'); banner1.src=imgs1[currentAd1] banner1.alt=alt1[currentAd1] document.getElementById('adLink1').href=lnks1[currentAd1] currentAd1++; } window.setInterval("cycle1()",3000); </script> <center><a href="http://www.auc.cz" id="adLink1" target="_top"> <img src="logo.jpg" id="adBanner1" border="0" width="900" height="170"></a></center> |
||
Keeehi Profil |
#5 · Zasláno: 8. 4. 2015, 09:42:21
Joker:
Pardon, ten odkaz jsem přehlédl. Devfrost: > zatím používam tudle "zběsilost" na testovací stránce ..... > ale právě třeba addblock to nemilosrdně zařízne To bude tím, že adblok má definovaný seznam nějakých zakázaných slov a pokud se nějaké takové slovo vykytne v html elementu, tak ho nezobrazí. A jsem si celkem jistý že něco jako ad* tam mít bude. Řešení je jednoduché, stačí to přejmenovat. Třeba adBanner1 na Kopretina1 a adLink1 na Kotatko1 a už to bude v pořádku.
Teda do té doby než někdo napíš filtr na míru přesně pro tvojí stránku ale to s tím už se toho pak moc dělat nedá. Ovšem to bys asi musel mít statisícovou návštěvnost aby se s tím někdo dělal. |
||
Devfrost Profil |
#6 · Zasláno: 8. 4. 2015, 13:36:31
Keeehi:
Ahoj Díky záměna pomohla adblock si toho momentálně nevšímá.... ale byl bych spíš pro ňáké jiné řešení jestli už si to někdo ladil na svých stránkách.. |
||
Keeehi Profil |
#7 · Zasláno: 8. 4. 2015, 14:26:06
Devfrost:
Ale ono to tvoje řešení je celkem správně. Samozřejmě by se to dalo napsat hezčeji ale nějaké zásasní problémy tam nejsou. Jen teda použít window.setInterval(cycle1, 3000); |
||
juriad Profil |
#8 · Zasláno: 8. 4. 2015, 14:47:36
Živá ukázka
Zkus programovat tak, že oddělíš data od samotného algoritmu. Na ukázce vidíš, že jsem vyčlenil definici těch polí (teď je to jedno pole - prvky jsou pohromadě v objektu). Přechodu zpět na první (ten if) lze elegantněji řešit pomocí zbytku po dělení (modula). Celé je to obalené do funkce, takže těch banerů můžeš mít na stránce několik, jen vícekrát zavoláš funkci banner .
Všimni si, že ta funkce závisí jen na svých argumentech a nikoli na globálních proměnných, které by přepisovala. Co jen lze vypočítat na základě dostupných informací (img je jediný obrázek v odkazu; první obrázek má číslo 0, obrázků je frames.length) je dobré počítat a nezadávat jako konstanty. |
||
Devfrost Profil |
#9 · Zasláno: 8. 4. 2015, 15:14:55 · Upravil/a: Devfrost
Dá se toho mého příkladu dodat ještě ňaká animace tech slidů? (přesun do stran nebo podobně) teda aby to fungovalo i na starších prohlížečích...
juriad: Ahoj zkusil jsem to na svých stránkách a je tam někde problém, první banner se zobrazí jak má, ale u další to už nezobrazí jako by neveděl kam si pro ně šahnout... |
||
Keeehi Profil |
#10 · Zasláno: 8. 4. 2015, 15:42:37
Protože juriad tam má drobný překlep.
img.src = frames[current].img; |
||
Devfrost Profil |
#11 · Zasláno: 9. 4. 2015, 08:54:11
Keeehi:
Diky už to frčí šla by do toho přidat i ňáká ta animace přechodů slidů? nebo je k tomu už potřeba "transition" ? |
||
juriad Profil |
|||
Devfrost Profil |
#13 · Zasláno: 9. 4. 2015, 11:01:43
juriad:
Díky todle je super, ješte teda, když dam ten banner jako center tak mi pak ten spodní co je připravený vylíza zleva...... |
||
juriad Profil |
Devfrost:
To úplně nevidím, jak se to může stát, ale snad pomůže tomu banneru, v mém případě divu, přidat: position: relative |
||
Devfrost Profil |
#15 · Zasláno: 9. 4. 2015, 11:30:05
juriad:
<div align="center" id="banner1" position="relative"> <a href="http://www.odkaz.cz" target="_top"> <img src="logo.jpg" width="900" height="170"> </a> </div> http://www.auc.cz/scholaludus2007/sch2015c/ |
||
juriad Profil |
Prosím, nauč se CSS a nepoužívej neexistující nebo zastaralé atributy:
#banner1 { position: relative; text-align: center; } style="position: relative; text-align: center;" |
||
Devfrost Profil |
#17 · Zasláno: 9. 4. 2015, 11:44:44
juriad:
i když to přidám do CSS tak to dělá to samé |
||
juriad Profil |
#18 · Zasláno: 9. 4. 2015, 11:48:25
Mě to funguje; zkusil jsi obnovit stránku bez cache?
|
||
Devfrost Profil |
#19 · Zasláno: 9. 4. 2015, 11:49:01 · Upravil/a: Devfrost
juriad:
ano dela to jen v IE .... FF a CH jsou v pohode... |
||
Tomáš123 Profil |
#20 · Zasláno: 9. 4. 2015, 15:32:21
Devfrost:
Nevidím čo myslíš. V IE sa mi stránka zobrazuje rovnako ako vo Firefoxe. |
||
Devfrost Profil |
#21 · Zasláno: 9. 4. 2015, 15:43:21
Tomáš123:
protože jsem tam dal zatím stare reseni bez prolinani jdu tam nahodit to prolinani... |
||
juriad Profil |
#22 · Zasláno: 9. 4. 2015, 20:02:10
Právě jsem to zkusil v IE8 a vypadá to tam podobně jako v FF. Liší se to jen tím borderem, který můžeš snadno odstranit třeba pomocí:
#banner1 img {border: 0} |
||
Devfrost Profil |
#23 · Zasláno: 10. 4. 2015, 09:42:59
juriad:
nevím jestli se bavíme o stejné věci todle mi to dělá v IE 11 http://www.auc.cz/scholaludus2007/sch2015c/img.jpg kdy ten spodní obrázek je posunutý doleva na okraj .... a takhle to vidím v FF a CH.. http://www.auc.cz/scholaludus2007/sch2015c/img2.jpg kde jsou krásně pod sebou..... |
||
juriad Profil |
#24 · Zasláno: 10. 4. 2015, 09:57:18
Aha, jedná se o známý problém: www.google.cz/search?q=position+absolute+text-align+center
Nejjednodušším řešením je nepoužívat text-align: center , ale nahradit jej za:
#banner1 { width: 900px; /* nastavíme pevnou velikost */ margin: auto; /* a vystředíme */ } position: relative také není třeba.
Alespoň takto mi to funguje v IE9. Zajímavé, že IE8 se chová lépe. |
||
Devfrost Profil |
#25 · Zasláno: 10. 4. 2015, 10:05:32
juriad:
super už to válí dobře ještě jsem si dneska všimnul když jsem nechal IE dlouho otevřený na a nic nedělal tak po chvíli začne ten obraz problikávat v FF a CH se to chová normálně.. |
||
Devfrost Profil |
#26 · Zasláno: 10. 4. 2015, 12:29:20
Díky moc za pomoc a rady
jde ňákým způsobem vlakno uzavřít jako ukončené? |
||
Keeehi Profil |
#27 · Zasláno: 10. 4. 2015, 13:20:39
Jde, ale to se tu moc nenosí. Aby se k tomu případně dalo vrátit nebo když to najde někdo s podobným problémem tak aby měl možnost se na něco doptat.
|
||
Časová prodleva: 5 dní
|
|||
Devfrost Profil |
#28 · Zasláno: 15. 4. 2015, 12:40:21
když je to nechané otevřene
na netu jsem našel a hodil to sem na yive ukazky IE funguje FF funguje CHROME ne neví někdo proč?? http://kod.djpw.cz/hlmb |
||
Keeehi Profil |
#29 · Zasláno: 15. 4. 2015, 12:49:18
Devfrost:
Protože animace je nová a prohlížeče vyžadují oprefixované verze. -webkit-* pro chrome a další založné na webkitu -moz-* pro firefox -o-* pro operu |
||
Časová prodleva: 10 let
|
0