Ich möchte gerne wissen, ob und wie sich folgendes Szenario mit JavaScript realisieren läßt:
Über eine Selection Box soll eine bestimmte Kategorie ausgewählt werden können. Je nach ausgewählter Kategorie muß dann ein bestimmtes Bild mit dazugehörigem Text angezeigt werden. Am schönsten wäre es, wenn der Text aus einer Textdatei eingelesen und immer zum passenden Bild angezeigt werden könnte. Außerdem soll es möglich sein, innerhalb der Kategorien vor- und zurückzublättern.
Ist machbar, aber die Texte koennen nicht direkt aus einer Textdatei per JS ausgelesen werden, sondern am besten wird alles in einem mehrdimensionalen Array abgelegt.
Wie das im Einzelnen realisiert werden kann, gibt es bestimmt dutzende Moeglichkeiten.
Blaetern verstehe ich jetzt nicht, wenn die Kategorien in einer SelectBox stehen, es sei denn Du hast die Kategorien in einer SelectBox und die Bilder zu einer Kategorie in einer zweiten Box, oder so… oder die Bilder zu einer Kategorie stehen in einer SelectBox, die ueber das Blaettern immer wieder neu gefuellt wird.
Ist machbar, aber die Texte koennen nicht direkt aus einer
Textdatei per JS ausgelesen werden, sondern am besten wird
alles in einem mehrdimensionalen Array abgelegt.
OK, ich kann ja dann zumindest das js-File als extra Datei auslagern. Aber warum ein mehrdimensionales Array? Eigentlich würde doch auch ein eindimensionales Array ausreichen, oder?
Wie das im Einzelnen realisiert werden kann, gibt es bestimmt
dutzende Moeglichkeiten.
Hast Du irgendwelche Codebeispiele? Ich habe nicht so viel Erfahrung mit JavaScript.
Blaetern verstehe ich jetzt nicht, wenn die Kategorien in
einer SelectBox stehen, es sei denn Du hast die Kategorien in
einer SelectBox und die Bilder zu einer Kategorie in einer
zweiten Box, oder so…
Also, es gibt eine SelectBox, in der verschiedene Kategorien ausgewählt werden sollen. Zu einer Kategorie gehören dann wiederum mehrere Bilder, die mit vor und zurück durchgeblättert werden können.
Bsp: Kategorie A wird über SelcetBox ausgewählt, jetzt wird Bild A1 mit dazugehörigem Text angezeigt und man kann bis A5 weiterblättern, indem man eine Pfeiltaste benutzt.
Code-Beispiele habe ich nicht, denn Scripting ist immer eine Spontan-Entwicklung und meist ganz individuell auf ein Problem angespasst. Ich benutze zwar auch JavaScript-Libraries, die gut getestet sind und man immer wieder verwenden kann (wenn man es geschickt angeht), aber es bezieht sich meist auf das Cross-Browser Thema, weil ein Problem in unterschiedlichen Browser verschieden gehaendelt werden muss.
Bei Dir liegt global es mit JS zu versuchen kaum ein Problem vor, aber das Realisierungsproblem liegt widerum in Detail:
Sollen Frames verwendet werden (links das Menue, rechts die Bilder)?
Soll beides in einem Browser Fenster dargestellt werden?
Sollen die Bilder in einem extra Popup Fenster angezeigt werden?
usw.
Das kann man beim Scripting schlecht generalisieren und dann einfach per Flag umschalten, aber obiges ist alles getrennt moeglich.
Das spezifiziert man am besten erstmal ueber das leidige Thema „Pflichheft/Lastenheft“ (oder ? und dann legt man los und wenn dann fast alles fertig ist, wirft man alles wieder ueber den Haufen
und ein mehrdimensionales Array wuerde ich schon empfehlen um die Daten, die zusammen gehoeren besser kapseln zu koennen. Z.B. ein 2-dim Array mit Bild Resource und zugehoerigem Text als ein Unterelement…keine Frage…
Code-Beispiele habe ich nicht, denn Scripting ist immer eine
Spontan-Entwicklung und meist ganz individuell auf ein Problem
angespasst.
Schade, ich hatte gehofft, daß es dafür vielleicht schon ein Script gäbe, das nur noch etwas angepaßt werden müßte.
Ich benutze zwar auch JavaScript-Libraries, die
gut getestet sind und man immer wieder verwenden kann (wenn
man es geschickt angeht), aber es bezieht sich meist auf das
Cross-Browser Thema, weil ein Problem in unterschiedlichen
Browser verschieden gehaendelt werden muss.
Also, irgendwie glaube ich, daß JavaScript nicht die richtige Sprache für mein Problem ist. Zum Abprüfen von Formulardaten und anderen Kleinigkeiten mag es ja ganz nett sein, aber eine serverseitige Lösung wäre wohl doch besser, zumal das Cross-Brower Thema dann auch wegfallen würde.
Am liebsten würde ich es mit JSP oder notfalls auch ASP machen, aber mein Provider unterstützt das nicht. Allein deshalb hatte ich mir überlegt, es mal mit JavaScript zu versuchen. Jetzt suche ich mir doch mal JSP oder ASP Webspace, damit müßte so eine Bildergallerie eigentlich leichter zu realisieren sein.
Das spezifiziert man am besten erstmal ueber das leidige Thema
„Pflichheft/Lastenheft“ (oder ? und dann legt man los und
wenn dann fast alles fertig ist, wirft man alles wieder ueber
den Haufen :
Ein Pflichtenheft gibt es sowieso nicht, da das ganze für meine private Website sein soll. Ich will einfach nur möglichst schnell und ohne viel Aufwand eine leicht erweiterbare Bildergallerie erstellen.
Also, ich habe heute abend noch mal ein bißchen rumgesucht und eine freie JavaScript-Bildergallerie gefunden, die ich für meine Bedürfnisse ein bißchen angepaßt habe:
Eigentlich war es doch leichter als ich gedacht hatte, aber es funktioniert leider noch nicht alles wie ich will:
Bis jetzt habe ich testweise nur die Kategorien „Australia“ und „France“ testweise mit je drei Photos gefüllt. Man kann mit den Pfeilen unten erst blättern, wenn man eines der beiden Länder ausgewählt hat. Allerdings funktioniert leider die nextimg()-Funktion nie. Warum?
Außerdem möchte ich Pfeile, die nicht momentan nicht möglich sind ausblenden. Bsp: Beim ersten Foto soll nofirst.gif anstatt first.gif angezeigt werden (document.first.src = „img/nofirst.gif“, weil man sich ja bereits an der richtigen Stelle befindet und nicht mehr dorthin blättern muß. Irgendwie funktioniert das überhaupt nie, die Pfeile bleiben immer dunkelgrün, anstatt hellgrau.
Wenn ich das Script auf meiner Festplatte ausprobiere, werden die Bilder der Kategorie „France“ angezeigt, online jedoch nicht! Muß ich das Array vielleicht erst wieder löschen, bevor ich es mit neuen Daten fülle?
Warum geht das Script nicht mehr, wenn ich die Variable amount weglasse und diese durch images.length ersetze? Das müßte doch der gleiche Wert sein.
Es wäre nett, wenn Du mir noch mal ein paar Tips geben könntest. Danke. Ich habe leider noch nicht so viel Erfahrung mit JavaScript.
also erstmal gefällt mir das Skript ueberhaupt nicht. Das schreibe ich mit einem Bruchteil an Codezeilen mit weitaus mehr Flexibilität. Tip: 3 dimensionles Array Nun gut ist eben eine Erfahrungssache und deshalb schreibe ich nicht nur in JS alles selbst, denn man findet meist nix besseres.
Zu 1)
2 Fehler in der Funktion und ist wie in 2) zu betrachten.
Zu 2)
Probiers mal document.images.first.src=„img/nofirst.gif“;
Zu 3)
Ja/Nein. Das Array sollte schon geloescht werden, sonst mischen sich die Eintraege, wenn die Kategorien unterschiedlich viele Bilder haben. Ansoten ist noch ein andere fehler drin (Schreibweise, Pfad,…)
Zu 4)
Geht auch ohne „amount“, aber Dein Skript ist noch nicht vollstaendig. Daran liegt es.
also erstmal gefällt mir das Skript ueberhaupt nicht. Das
schreibe ich mit einem Bruchteil an Codezeilen mit weitaus
mehr Flexibilität.
Das mag ja sein, aber ich wollte eben nur auf die Schnelle und ohne viel Aufwand so eine Bildergallerie für meine private Website haben, von daher bin ich mit diesem gefundenen JavaScript erst mal zufrieden.
Danke auch für Deine Tips bezüglich der Fehler. Ich werde mir das genauer anschauen, wenn ich mal wieder ein bißchen Zeit habe…