Autor Zpráva
Devfrost
Profil
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
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
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
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
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
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
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);
a mohlo by to tak i zůstat. Fungovat to bude.
juriad
Profil
Ž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
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
Protože juriad tam má drobný překlep.
        img.src = frames[current].img;
Má tam být toto img místo src.
Devfrost
Profil
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:
Animaci lze udělat poměrně jednoduše. Něco zkusím.
Živá ukázka
Devfrost
Profil
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
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;
}
Případně inline atributem:
style="position: relative; text-align: center;"
Devfrost
Profil
juriad:
i když to přidám do CSS tak to dělá to samé
juriad
Profil
Mě to funguje; zkusil jsi obnovit stránku bez cache?
Devfrost
Profil
juriad:
ano


dela to jen v IE ....
FF a CH jsou v pohode...
Tomáš123
Profil
Devfrost:
Nevidím čo myslíš. V IE sa mi stránka zobrazuje rovnako ako vo Firefoxe.
Devfrost
Profil
Tomáš123:
protože jsem tam dal zatím stare reseni bez prolinani
jdu tam nahodit to prolinani...
juriad
Profil
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}
Dále se liší tím, že IE8 neumí opacity, takže se nic neprolíná (to by šlo doplnit pomocí filteru.
Devfrost
Profil
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
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 */
}
Ten position: relative také není třeba.
Alespoň takto mi to funguje v IE9. Zajímavé, že IE8 se chová lépe.
Devfrost
Profil
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
Díky moc za pomoc a rady
jde ňákým způsobem vlakno uzavřít jako ukončené?
Keeehi
Profil
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.
Devfrost
Profil
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
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
IE prefixy nepoužívá, ale v něm to funguje od 10 výš.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0