Hallo Ihr Web-Gurus![]()
ich habe da eine Foto-Galerie, die ich für meine Besucher so komfortabel wie möglich machen will.
Das ist sie
Die Galerie verfügt über ein Javascript, das aus den einzelnen Seiten eine Slideshow macht.
Mein Wunsch ist es nun, dass, wenn man man die Slideshow startet, ein benannter Anker auf der nächsten Seite angesprungen wird.
Ich wünsche mir das deshalb, weil die meisten Betrachter meiner Galerien keine Monitore mit so hoher Auflösung haben, dass sie die Bilderseiten ohne nach unten scrollen zu müssen betrachten können. Der benannte Anker befindet sich in der Überschrift der Galerie (nur auf den Bilderseiten).
Für die Navigation sowohl per Maus als auch per Keyboardsteuerung konnte ich das bereits umsetzen. Nur für die Slideshow will es mir einfach nicht gelingen:-(
Hier mal der Code für die Slideshow:
Ich habe also die Stelle gesucht, in der der Verweis auf die anzuspringende Seite steht:Code:<!-- Slideshow code--> show0 = new Image(90,50);show0.src = "/inge/Library/startdia.gif"; stop0 = new Image(90,50);stop0.src = "/inge/Library/stopdia.gif"; var show_param = -1; // -1 = slideshow stopped var delay = 3; if(window.location.search.length > 1){ var parms = window.location.search.substring(1,location.search.length).split("&"); for(var i = 0; i < parms.length; i++) { if(parms[i].substring(0, parms[i].indexOf("=")) == "pause") delay = show_param = parms[i].substring(parms[i].indexOf("=") + 1, parms[i].length); }} var show_delay = show_param; function show_timer() { if(show_delay >= 0){ show_delay--; if(show_delay < 0 && show_param > 0) { <!--window.location=window.location.pathname+"?pause=" + show_param;--> window.location="##next##?pause=" + show_param; } else { if(show_param > 0) { window.status='Diashow läuft. Nächstes Bild in '+(show_delay+1)+' Sek., gesamt '+show_param+' Sek.'; }} } setTimeout('show_timer()', 1000); } function show_over() { <!--window.status='Diaschau starten/anhalten - Doppelklick für Geschwindigkeitsänderung';--> } function show_out() { if(show_param >= 0) { document.show.src=stop0.src; } else { document.show.src=show0.src; } } function show_down() { if(show_param >= 0) { show_param = -1; document.show.src=stop0.src; window.status=''; } else { show_param = delay; document.show.src=show0.src; } show_delay = show_param; } function change_delay() { delay = prompt('Verzögerung in Sekunden', (show_param < 0)? 3:show_param); show_param = show_delay = delay; document.show.src=show0.src; } </script>
<!--window.location=window.location.pathname+"?pause=" + show_param;-->
window.location="##next##?pause=" + show_param;
}
else { if(show_param > 0) {
aus ##next##?pause habe ich ##next###a?pause gemacht, weil #a der Verweis auf den benannten Anker ist und für mich dies die einzige Stelle ist, die mir wegen der Verwendung des Platzhalters einen Hinweis gegeben
hat. (##next## wird bei der Erzeugung der Galerie in den Link zur nächsten Seite umgewandelt.) Der Link wird korrekt umgesetzt.
Erzeuge ich nun eine Galerie und starte die Show, funktioniert sie genau 1x. Es wird die nächste Bilderseite an der richtigen Position angesprungen, die Show läuft aber danach nicht weiter.
Leider kenne ich mich mit javascript überhaupt nicht aus, daher kann ich meinen Denkfehler nicht finden. Sicherlich muss ich noch an anderer Stelle des Scriptes eine entsprechende Änderung anbringen?
Ich würde mich riesig über Hilfe hierzu freuen.
Inge Grotjahn
CatManiacs World: http://www.gwsystems.com/inge
CatManiacs World: http://www.gwsystems.com/inge
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)