colaholiker
Mitglied
Guten Morgen,
auf eine meiner Webseiten läuft eine Uhr, deren Ziffernblatt ein zufällig geladenes Hintergrundbild ist.
Die Zeiger (Quelle) werden in verschiedenen Farben dazugeladen um immer gut sichbar zu sein.
Die Bildnummern und Themen (Zeiger-Eigenschaften) sind in einem Array hinterlegt.
Ich hatte dann irgendwann Buttons für eine Handsteuerung dazugebaut und dachte alles funktioniert, bis ich merkte daß die Zeiger nicht mehr zum Thema passen. Da Bildnr. mit Thema auf der Uhr angezeigt werden, kann ich ungefähr sagen wo der Fehler liegt:
Zum hoch- und runterrechnen der Array-Nummern habe ich 'parseInt' verwenden müssen, und das wird für die Themen nicht übernommen.
Hier der relevante Codeteil:
Ich hoffe diese Infos reichen.
randomIdx und parseInt(randomIdx) ist halt nicht dasselbe, aber nur mit randomIdx klappt das Zählen nicht.
Als Datei hänge ich zur Sicherheit den kompletten js-Code dran...
TIA
C.
auf eine meiner Webseiten läuft eine Uhr, deren Ziffernblatt ein zufällig geladenes Hintergrundbild ist.
Die Zeiger (Quelle) werden in verschiedenen Farben dazugeladen um immer gut sichbar zu sein.
Die Bildnummern und Themen (Zeiger-Eigenschaften) sind in einem Array hinterlegt.
Ich hatte dann irgendwann Buttons für eine Handsteuerung dazugebaut und dachte alles funktioniert, bis ich merkte daß die Zeiger nicht mehr zum Thema passen. Da Bildnr. mit Thema auf der Uhr angezeigt werden, kann ich ungefähr sagen wo der Fehler liegt:
Zum hoch- und runterrechnen der Array-Nummern habe ich 'parseInt' verwenden müssen, und das wird für die Themen nicht übernommen.
Hier der relevante Codeteil:
Code:
anzPix = themes.length;
if( e === 'noBtn' ){
randomIdx = parseInt(Math.floor((Math.random() * anzPix) + 1));
//-- randomIdx = Math.floor((Math.random() * anzPix));
//-- randomIdx = 67;
sessionStorage.setItem('randomIdx',randomIdx);
} else if ( e === 'up' ) {
randomIdx = sessionStorage.getItem('randomIdx');
if(randomIdx < 2){randomIdx = anzPix;}
randomIdx = parseInt(randomIdx) - 1;
sessionStorage.setItem('randomIdx',randomIdx);
} else if ( e === 'down' ) {
randomIdx = sessionStorage.getItem('randomIdx');
if(randomIdx > anzPix-2){randomIdx = 0;}
randomIdx = parseInt(randomIdx) + 1;
sessionStorage.setItem('randomIdx',randomIdx);
}
randomIdx = sessionStorage.getItem('randomIdx');
// auf das Array zugreifen:
const
path = 'a-Arbeitsfiles/images/Uhren/',
im = themes[randomIdx].img,
cls = themes[randomIdx].cls,
clkContainer = document.querySelector('div.clock');
clkContainer.classList.add(cls);
clkContainer.style.backgroundImage = `url(${path + im})`;
di1.innerHTML = randomIdx + '/' + (cls.substr(-1));
randomIdx und parseInt(randomIdx) ist halt nicht dasselbe, aber nur mit randomIdx klappt das Zählen nicht.
Als Datei hänge ich zur Sicherheit den kompletten js-Code dran...
TIA
C.