Foto-carrousel met tijdbalk en hyperlinks

Hieronder zie je een eenvoudige foto-carrousel, die steeds vier foto's laat zien. Bovenop de carrousel zie je vier tijdbalkjes. Als de eerste foto voor staat, loopt het eerste balkje. Zodra dat vol is, verschijnt de tweede foto en start het tweede balkje. Daarna volgt de derde foto, enzovoort. Als het vierde balkje vol is, begint de cyclus overnieuw.
De foto's zijn aanklikbaar. Als je er op klikt of tikt verschijnt er een melding over de foto.
Op deze pagina wordt beschreven hoe je zoiets maakt. De code staat onderaan de pagina. Die kun je ook downloaden om zelf te gebruiken, uitgezonderd de foto's. daar moet je zelf voor zorgen.

Gebruik:

De code van het voorbeeld ziet er als volgt uit:
 
(Zet dit in de <HEAD>).

<style>
.carrousel {
  position:relative;
  width:250px; height:187px;
  margin:10px auto;
  cursor:pointer;
}
.bg_1, .bg_2, .bg_3, .bg_4 {
  position:absolute;
  top:10px;
  width:50px; height:4px;
  background-color:#ccc;
  z-index:10;
}
#fg_1, #fg_2, #fg_3, #fg_4 {
  position:absolute;
  top:10px;
  width:0; height:4px;
  background-color:#fff;
  z-index:11;
}
.bg_1, #fg_1 { left:13px; }
.bg_2, #fg_2 { left:71px; }
.bg_3, #fg_3 { left:129px; }
.bg_4, #fg_4 { left:187px; }
#bericht { text-align:center; }
</style>
<script>
let dezeFoto = 1, breed = 0, fotos, balk, cycli = 0;
function volgendeFoto() {
  if (cycli == 10) {
    resetCarrousel(); return;
  }
  document.getElementById("foto_"+dezeFoto).style.display = "none";
  if (dezeFoto == 4) {
    for (let i=1; i<=4; i++) document.getElementById("fg_"+i).style.width = 0;
    dezeFoto = 1;
  } else dezeFoto++;
  document.getElementById("foto_"+dezeFoto).style.display = "block";
  melding(0);
}
function doeBalk() {
  if (breed == 50) breed = 0; // voor de volgende balk
  breed += 1;
  document.getElementById("fg_"+dezeFoto).style.width = breed + "px";
}
function initCarrousel() {
  balk  = setInterval(doeBalk,100);
  fotos = setInterval(volgendeFoto,5000);
  melding(0);
}
function resetCarrousel() {
  breed = 0; dezeFoto = 1; cycli = 0;
  clearInterval(balk);
  clearInterval(fotos);
  initCarrousel();
}
function melding(nr) {
  let xx = document.getElementById('bericht');
  switch(nr) {
  case 0: xx.innerHTML = "Klik of tik op de foto";
    break;
  case 1: xx.innerHTML = "De molen van Spijkenisse vóór de verhoging";
    break;
  case 2: xx.innerHTML = "Dit is een paddenstoel";
    break;
  case 3: xx.innerHTML = "Een roze roos";
    break;
  case 4: xx.innerHTML = "Een parkje in de winter";
    break;
  default:  // doe niks
  }
}
window.onload = initCarrousel;
</script>

(Zet dit in de <BODY> op de plaats waar de carrousel moet verschijnen).

<div class="carrousel">
  <img src="foto-molen.jpg" width="250" height="187" border="0"
    id="foto_1" style="display:block" onclick="melding(1)">
  <img src="foto-paddenstoel.jpg" width="250" height="187" border="0"
    id="foto_2" style="display:none" onclick="melding(2)">
  <img src="foto-roos.jpg" width="250" height="187" border="0"
    id="foto_3" style="display:none" onclick="melding(3)">
  <img src="foto-parkje.jpg" width="250" height="187" border="0"
    id="foto_4" style="display:none" onclick="melding(4)">
  <div class="bg_1"></div> <!-- achtergrond -->
  <div class="bg_2"></div>
  <div class="bg_3"></div>
  <div class="bg_4"></div>
  <div id="fg_1"></div> <!-- voorgrond -->
  <div id="fg_2"></div>
  <div id="fg_3"></div>
  <div id="fg_4"></div>
</div>
<div id="bericht"></div>

Downloaden:
 
Druk op de knop: Download deze code  File: voorb724.zip, 1163 bytes.

Opmerking:
 
Een iets eenvoudiger uitvoering van deze carrousel vind je in het item Foto-carrousel met tijdbalk en hyperlinks II.

 
terug

html-724; Laatste wijziging: 5 juni 2023