Figuren met een glitch-effect

Hiernaast zie je een foto. Als je er met de muis overheen gaat zie je een effect dat lijkt op de storingen die je vroeger wel had op een oude (analoge) TV, als de ontvanger niet helemaal goed stond ingesteld.
Dit soort verstoringen wordt aangeduid met de term glitch, wat verstoring betekent.

Ik heb dit effect voor het eerst in een tekst-versie aangetroffen op Volkshotel.nl. Daar is het inmiddels verdwenen. Het destijds gebruikte script is gemaakt door de Nederlander Hugo Wiledal, die het beschikbaar heeft gemaakt op CodePen.

In Webdesigner Magazine, nr. 72 (december 2014), pag 18, wordt een eenvoudiger versie van het script gepresenteerd. Die is bewerkelijker, maar beter te begrijpen. Een bewerking daarvan wordt op deze bladzijde besproken. De code van het voorbeeld kun je downloaden om zelf te gebruiken, inclusief het plaatje.
Het blad Webdesigner Magazine wordt sinds november 2017 niet meer gemaakt.

Gebruik:

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

<style>
#deFoto {
  position:relative;
  margin:20% auto;
  width:250px;
  height:187px;
  cursor:help;
  float:right;
  margin:0 10px 10px 30px;
}
#deFoto span {
  position:absolute;
  display:block;
  background-image:url(stapeltje_5.jpg);
  background-repeat:no-repeat;
  overflow:hidden;
  height:5px;
  width:100%;
}
</style>

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

<div id="deFoto">
  <span></span>
  <span style="top:5px; background-position: 0px -5px;"></span>
  <span style="top:10px; background-position: 0px -10px;"></span>
  <span style="top:15px; background-position: 0px -15px;"></span>

      .
      Voor elke stap van 5px een regel code.
      .
  <span style="top:180px; background-position: 0px -180px;"></span>
  <span style="top:185px; background-position: 0px -185px;"></span>
</div>

(Zet dit in de <BODY>, na de code van de foto).

<script>
document.getElementById("deFoto").onmouseover = function() {
  var spans = document.getElementsByTagName('span');
  var left = false, j = 1;
 
  for (var i = 0; i < spans.length; i++) {
    k = 3*j;
    if (left) {
      spans[i].style.left = -k + "px";
    } else {
      spans[i].style.left = k + "px";
    }
    j++;
    if (j > 5) j=1;
    left=!left;
  }
};
 
document.getElementById("deFoto").onmouseout = function() {
  var spans = document.getElementsByTagName('span');
  for (var i = 0; i < spans.length; i++) {
    spans[i].style.left = "0px";
  }
}
</script>

Downloaden:
 
Druk op de knop: Download deze code  File: voorb461.zip, 7778 bytes.

Opmerking:
 
Als je dit op een onverwachte plaats in je document zet, kun je hier de bezoekers van je site prettig mee laten schrikken .
 
Je kunt het effect ook toepassen op een deel van de foto. Dat doe je met een iets aangepaste code. Zie het item Figuren met een glitch-effect II: Lokaal effect.

 
terug

html-461; Laatste wijziging: 25 mei 2020