Modif. des Sitemap Scripts von Lutz Eymers (Feature-Artikel)
Ole
- javascript
Hi
ich versuche mich grade daran das Sitemap Script aus dem Feature Artikel von Lutz Eymers (http://aktuell.de.selfhtml.org/artikel/dhtml/sitemap/index.htm) ein wenig zu modifizieren.
Ziel des ganzen soll sein, das ich für jeden Menüpunkt ein eigenes Icon für die Zustände "auf" und "zu" definieren kann.
Angefangen habe ich mit der Variablendeklaration (Zeile 51-61). Dem habe ich 2 Punkte hinzugefügt:
var treeBildOn = new Array(); // für Zustand "auf"
var treeBildOff = new Array(); // für Zustand "zu"
Weiter ging es dann direkt in der anschließenden Funktion "Note" (Zeile 63-75)
Zeile 63 wurde erweitert:
function Note( id,p_id,name,url,bildon,bildoff )
außerdem sind noch 2 Zeilen hinzugekommen:
treeBildOn[ idx ] = bildon
treeBildOff[ idx ] = bildoff
in der Funktion "initArray" (Zeile 377-397) haben ich die Zeilen dann um 2 Punkte erweitert:
Bsp. Zeile 380:
Note(1,0,'Tutorials','','myImage_on','myImage_off')
Nur ab dieser Stelle verliere ich endgültig den Überblick *seuftz*
Wie muß ich jetzt weiter machen? Oder bin ich jetzt schon auf dem Holzweg und das alles geht a) viel einfacher oder b) mit dem script garnicht?
alles liebe
ole
(8-)>
Hallo ole,
Du musst Dir überlegen, wie Du die Bilder speicherst. Am besten, die Funktion Note bekommt den Dateinamen des Bildes übergeben und diese speichert ihn dann nicht direkt im Array, sondern erzeugt erst mal ein Image daraus:
function Note (...) {
...
var img_on = new Image ()
var img_off = new Image ()
img_on.src = bildon
img_off.src = bildoff
treeBildOn[ idx ] = img_on
treeBildOff[ idx ] = img_off
idx++
}
Eventuell kannst Du noch eine Abfrage einbauen, dass das passiert:
if (bildon == "") bildon = "folder_on.gif"
if (bildoff == "") bildoff = "folder_off.gif"
(vor der Zeile img_on.src) Dann wird auf die Default-Images zurückgegriffen.
Du musst dann noch die Funktion initDiv bearbeiten, dass dort, wo das Bild "folder_off.gif" ausgegeben wird, statt treeBildSonstwas[ i ].src statt des hardgecodeten Namens verwendet wird.
Hier die zwei modifizierten Funktionen load_all, gif_on und gif_off (die Funktion load_gif und gif_name kannst Du Dir sparen):
function load_all () {
file_last = new Image( 30,16 )
file_last.src = "file_last.gif"
file_middle = new Image( 30,16 )
file_middle.src = "file.gif"
file_vert = new Image( 30,16 )
file_vert.src = "file_vert.gif"
file_empty = new Image( 30,16 )
file_empty = "file_empty.gif"
}
function gif_on ( id ) {
document.images['folder' + id].src = treeBildOn[ id2treeIndex[id] ].src
}
function gif_off ( id ) {
document.images['folder' + id].src = treeBildOff[ id2treeIndex[id] ].src
}
(Ich verstehe den gebrauch von eval() im Originalsource nicht, aber naja)
Ich hoffe, ich hab' jetzt nicht Mist gebaut und nichts vergessen. :)
Grüße,
Christian