login  Naam:   Wachtwoord: 
Registreer je!
 Forum

3 Images afwisselend tevoorschijn laten komen. Welke methode de beste? (Opgelost)

Offline Kosmoseistis - 02/11/2011 19:44
Avatar van KosmoseistisLid Hello,

Ik zou graag drie afbeeldingen laten weergeven op een webpagina, maar dan wel afwisselend. Moet wel voldoen aan volgende eisen:

1) Afbeeldingen mogen niet wegschuiven, dus geen easyslider.
2) Liefst fading voor het laten verdwijnen en laten tevoorschijn komen van de afbeeldingen.
3) De afbeeldingen komen allemaal op dezelfde plaats tevoorschijn. Ze zijn gedeeltelijk doorzichtig, dus werken met z-index is niet de juiste oplossing.
4) Verder dient de bezoeker te zien dat er 3 verschillende afbeeldingen zijn door zichtbare aanklikbare knoppen(3). Zonder te klikken op een knop, wisselen de afbeeldingen van zelf af. Van zodra één knop aangeklikt start de animatie niet meer van zelf.

Dat is het zowat. Momenteel op zoek naar een oplossing met de toggle-fuhnctie van jQuery, maar loop een beetje vast omdat er drie afbeeldingen zijn.

Mijn kennis:
Heb reeds bestaande JQ-scripts gebruikt, maar kennis te weinig om zelf javascript/jQuery te schrijven.

Dus alle tips/links/stukjes codes zijn welkom om mij op weg te helpen.

Alvast bedankt voor het lezen van mijn post en zeker voor alle hulp;-)

kosmoSeitis

2 antwoorden

Gesponsorde links
Offline Stijn - 02/11/2011 20:14
Avatar van Stijn PHP expert jQuery is niet zo moeilijk . Ik zou de images plaatsen maar de display van de eerste moet op block staan. De andere staan op none. Daaronder die drie thumbnails met <a> tag daarrond. Wanneer er daarop geklikt wordt, dan moet de timer (lees verder) herstart worden en moet een functie (volgendeAfbeelding()) getoond worden.

De timer moet gestart worden wanneer het document geladen is (dus load event). Als de timer afgaat, dan roep je gewoon de functie volgendeAfbeelding op. De tijd van de timer moet je zelf maar instellen (1,2,3,...seconden).

In die functie volgendeAfbeelding wordt de timer stop gezet, wordt de volgende afbeelding gekozen (dat is de volgende afbeelding in de array, dat kan je simpel doen met een pointer variabele en module de size van je array => lastige zin, maar in JS code komt dit op het volgende neer arr[i%3]). Daarna doe je een fadeout op de huidige image, en een fadein op de nieuwe image.

  1. <div id="img-container">
  2. <img src="images/1.png" id="image_1" style="display:block;" />
  3. <img src="images/1.png" id="image_2" style="display:none;" />
  4. <img src="images/1.png" id="image_3" style="display:none;" />
  5. </div>
  6. ...thumbnails...


Dan heb je volgende JS code ongeveer. Je moet de ontbrekende stukken maar zelf in programmeren. Ik gebruik setTimeout, ik ken de jQuery api niet zo goed.

  1. var images = ["image_1", "image_2, "image_3];
  2. var p = 0; //pointer
  3. var seconds = 2;
  4. var timer = setTimeout("volgendeAfbeelding()", seconds*1000);
  5.  
  6. function volgendeAfbeelding()
  7. {
  8. document.getElementById(images[p%images.length]).fadeout(500);
  9. document.getElementById(images[++p%images.length]).fadein(500);
  10. }
Bedankt door: Kosmoseistis
Offline Kosmoseistis - 02/11/2011 21:05 (laatste wijziging 02/11/2011 21:08)
Avatar van Kosmoseistis Lid Thanks Stijn,

Ga het eens uit proberen, laat je wel weten hoe het lukte!!

Nogmaals a big thanks,
kosmoSeitis

And succes met de peterselie 
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.176s