Hallo Rolf
(function() { let vogelbild = document.querySelector("#vogelbild div"); ... })();
Wenn du let (oder besser const) verwendest, brauchst du keinen IIFE, ein einfaches Block Statement genügt. Nur Variablen die mit var deklariert werden sind an einen Ausführungskontext gebunden.
{
    const vogelbild = document.querySelector('#vogelbild div');
    ...
}
Die Variable ist nur innerhalb des Blocks sichtbar. Nach der schließenden geschweiften Klammer wird die lokale Umgebung des Blocks samt Bindung für die Variable zerstört.
Viele Grüßé
 nicht angemeldet
 nicht angemeldet Rolf B
 Rolf B Gunnar Bittersmann
 Gunnar Bittersmann Der Martin
 Der Martin