Autor Zpráva
ronaldinho
Profil *
Zdravím,

dá sa tento JS upraviť tak, aby sa fotky menili automaticky napr. po 5 sekundách a nie po kliknutiach?

<script type="text/javascript"> 
  <!-- 
  Pics = new Array(3); 
  Pics[0] = '<A HREF="http://www.1.cz">'+ 
    '<IMG SRC="1.gif" ALT="Web 1" Border=0></A>'; 
  Pics[1] = '<A HREF="http://www.2.cz">'+ 
    '<IMG SRC="2.gif" ALT="Web 2" Border=0></A>'; 
  Pics[2] = '<A HREF="http://www.Web 3.cz">'+ 
    '<IMG SRC="3.gif" ALT="Web 3" Border=0></A>'; 
   document.write(Pics[Math.floor(Math.random() * Pics.length)]); 
// --> 
</SCRIPT>

predtým som riešil pohyblivé obrázky cez obrázky .gif ale toto mám fotky a dosť sa mi zníži kvalita.

Ďakujem
Taps
Profil
ronaldinho:
nebylo by lepší použít nějaký hotový jquery slider ?
Chamurappi
Profil
Reaguji na Tapse:
Nebylo by lepší nevnucovat každému na potkání jQuery? Tahat devadesátikilový balík kvůli takové prkotině…


Reaguji na ronaldinha:
a nie po kliknutiach?
Současná podoba skriptu nijak nereaguje na kliknutí, náhodný obrázek vybírá při načtení.
Mají se měnit v náhodném pořadí, nebo postupně, nebo postupně s náhodným začátkem?
ronaldinho
Profil *
Chamurappi:
majú sa meniť postupne 4-5 obrázkov a stále dookola
Chamurappi
Profil
Reaguji na ronaldinha:
<a id="odkaz" href="http://www.1.cz">
  <img id="obrazek" src="1.gif" alt="Web 1" title="Web 1">
</a>  
<script>
var odkazy = ["http://www.1.cz", "http://www.2.cz", "http://www.3.cz"];
var obrazky = ["1.jpg", "2.jpg", "3.jpg"];
var popisky = ["Web 1", "Web 2", "Web 3"];
var n = 0;
function vymena()
{
  n = (n + 1) % odkazy.length;
  document.getElementById("odkaz").href = odkazy[n];
  document.getElementById("obrazek").src = obrazky[n];
  document.getElementById("obrazek").alt = document.getElementById("obrazek").title = popisky[n];
}
setInterval(vymena, 5000); // 5000 milisekund = 5 sekund
</script>
Taps
Profil
Chamurappi:
Já nic nevnucoval, pouze jsem se zeptal. Na druhou stranu bude mít aspoň tazatel povědomí o tom, že něco takového existuje
ronaldinho
Profil *
Chamurappi:
Zdravím,

kód funguje ale mám jednu otázku k tomu, ku kódu priradím jednotlivé URL adresy obrázkov + adresu webu a keď to hodím na stránku a zobrazím kód tak mi prvý obrázok zobrazí takto: a potom už zobrazí všetky obrázky správne a keď sa má ,,koliečko,, zobrazení opakovať, tak mi už normálne zobrazí aj ten prvý obrázok.
Ale zakaždým keď stránku obnovím, tak mi ten prvý obrázok zobrazí tak ako je vyššie uvedený obrázok.
Chamurappi
Profil
Reaguji na ronaldinha:
Jako první obrázek bude vidět ten, který je uvedený přímo v HTML (řádky 1 až 3). Ten také uvidí lidi s vypnutým JavaScriptem napořád. JavaScript začne stránku upravovat až po těch pěti sekundách.
margin
Profil *
ronaldinho:
Zřejmě zatím nemáš všude "ku kódu priradené jednotlivé URL adresy obrázkov".
Abych jenom nepopichoval, JS část bys měl mít správně a chyba bude v HTML části.
Koukám, že mě Chamurappi předběhl.
peta
Profil
Taps: Co treba pridat odkaz hned na plugin s jquery? 90k jquery + 50k plugin
http://jquery.malsup.com/cycle/
Bez jquery se to da ale tez. 15k (na v tom prvnim je neplatna url obrazku)
http://peter-mlich.wz.cz/web/js-eff/photo/slide-pp.htm
ronaldinho
Profil *
Áno bolo to v tom, že som nemal priradenú URL adresu k HTML časti. Už všetko funguje ako má.

Ďakujem za pomoc.
matej2210
Profil
Zdravím,

mam spravený menenie obrázkov za pomoci javascrip a chcem aby sa obrazky menily ale tak nejak postupným miznutím prvého a postupným objavením druhého a tak stále dookola

index.php
<head>
<title>JS</title>
  <script type="text/javascript" src="dynamic1.js" ></script></center>
  </head>
  
  
  <body>
<img id='obrazok' src="header_zima.png">
</body>


dynamic1.js
var obrazky= ['header_zima.png', 'header_la_zima.png'];
var i=0;

intervalID = setInterval(function(){
 var modulus=i%2;
 i++;
 document.getElementById('obrazok').setAttribute('src', obrazky[modulus]);
  }, 8000);

nasiel som niečo podobne na tejto stránke http://jquery.malsup.com/cycle/ pod názvom fade síce sa to tam mení moc rýchlo ale podstatu o čo mi ide zobrazuje len neviem ako to zapísať do môjho kódu tento odkaz : $('#fade').cycle();

čo sa tyká tvorby webu som začiatočník
habendorf
Profil
matej2210:

1) vyhoď si z head ten </center>
2) pokud chceš točit jen dva obrázky, dal bych je oba natvrdo (absolutně poz.) na jedno místo a měnil hornímu (nebo oběma v protisměru) opacity
3) taky by šlo mít jen jeden <img> a druhý obrázek jako background + opět hrátky s opacity

jQuery bych do toho netahal, pokud už ho nepoužíváš k něčemu jinému. Pokud tam jQuery a Cycle mermomocí tahat chceš, dáš oba obrázky absolutně přes sebe do elementu s nějakým id a zavoláš $('#to_id').cycle();
margin
Profil *
habendorf:
nebo oběma v protisměru
To není dobrý nápad, dám extrémní příklad, pokud budou oba obrázky černé a stránka bílá, tak uprostřed přechodu mezi obrázky bude jedna čtvrtina bílé prosvítat, kdo si to neumí představit, ve výsledku je to #404040. Zesvětlení způsobené prosvítáním pozadí je vidět i při použití běžných fotek.
Napadlo mě, že by se toho dalo umělecky využít, pokud by pod fotkami byl třebas rastr. Nechám si to patentovat ;-)
matej2210
Profil
habendorf :

1. na ten center som úplne zabudol , ten je tam fakt zbytočný
2. obrázkov časom bude viac , môj odhad cca 5-10, preto som to riešil týmto spôsobom
habendorf
Profil
matej2210:
obrázkov časom bude viac , môj odhad cca 5-10, preto som to riešil týmto spôsobom

Pak padá možnost 3), ale 2) zůstává. Napral bych je všechny na jedno místo a pak už jen hrátky se z-indexem a opacity. Ostatně ten $('#fade').cycle(); to asi taky tak dělá.
matej2210
Profil
Ďakujem za pomoc , problém som už vyriešil.
margin
Profil *
A jak?
matej2210
Profil
Dostal som sa ku súboru zo skriptom z tej stránky čo som písal ako ma to vyzerať a bez väčších problémov mi to nabehlo.

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