 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
21.05.2004, 08:21
|
#1
|
|
TP-Member
Registriert seit: Feb 2004
|
[JavaScript] Brauche Hilfe bei ein paar Aufgaben
Hallo.
Also ich hab da ein paar Aufgaben bekommen. Hab viele schon gemacht, aber bei den Folgenden tu ich mir echt schwer.
Ich stelle die Aufgebenstellung hier mal rein und hoffe dass mir da jemand weiterhilft.
1. Aufgabe
Ich soll einen Preloader mit JS programmieren der eine variable Anzahl an Bildquellen vorauslädt. Der Fortschrittsbalken sollte ein einfärbiges GIF sein der sich je nach berechneten Wert vergrößert. Es gilt dabei: Anzahl der Bilder = 100 %
2. Aufgabe
Gegeben hab ich folgenden String:
"1,Hauptmenü1, 1-1, Submenü 1-1, 1-4, Submenü1-4, 1-2, Submenü1-2, 2, Haupmenü2, 1-3, Submenü1-3, 2-2, Submenü2-2, 2-1, Submenü2-1"
Aus diesem String soll ein "2-dimensionales" Array mit folgender Struktur erstellt werden:
Hauptmenü1
Submenü1-1
Submenü1-2
Submenü1-3
Submenü1-4
Hauptmenü2
Submenü2-1
Submenü2-2
Zusätzlich soll noch die Dimension der einzelnen Arrays ermittelt werden.
3. Aufgabe
Gegeben hab ich das "2-dimensionale" Array von der vorigen Aufgabe.
Aus diesem Array soll ein Drop-Down-Menü erzeugt werden, die Submenüpunkte sind die Einträge des Menüs.
So, hoffentlich sind ein paar JavaScript-Profis hier. Wahrscheinlich muss man für diese Aufgaben garkein Profi sein, aber ich schaffs leider nicht.
Wäre euch echt total dankbar.
Schöne Grüße
|
|
|
21.05.2004, 10:09
|
#2
|
|
TP-Lady-Mod
Registriert seit: Nov 2001
Ort: muc
|
Hi Student,
Kann dir nicht helfen, aber hast du schon mal hier geschaut? 
|
|
|
21.05.2004, 10:12
|
#3
|
|
TP-Member
Registriert seit: Feb 2004
|
Hi Rea!
Ja da hab ich schon geschaut, danke!
Aber leider ..... 
|
|
|
21.05.2004, 10:23
|
#4
|
|
TP-Lady-Mod
Registriert seit: Nov 2001
Ort: muc
|
Püh, dann wär's aber wahrscheinlich gescheiter, du würdest erklären,
ab wo du bei den einzelnen Aufgaben Probleme bekommst bzw. wo
es hakt. 
|
|
|
21.05.2004, 10:38
|
#5
|
|
TP-Member
Registriert seit: Feb 2004
|
Naja leider hagt es da überall 
bin einfach kein JavaScripter, vielleicht weil ich es einfach nicht will.
|
|
|
21.05.2004, 13:40
|
#6
|
|
TP-Moderator
Registriert seit: Mar 2003
Ort: Hamburg
|
Ich habe einmal eine Lösung zu Aufgabe 1 anzubieten
HTML-Code:
<script language="JavaScript1.2">
<!-- begin hiding
startingColor = new Array() // <-- Nicht ändern!
endingColor = new Array() // <-- Nicht ändern!
// Hier alle Bilder angeben die vorgeladen werden sollen:
var yourImages = new Array("index_mitte.jpg","CS-Zeichen.JPG") // Ende Bilder
var locationAfterPreload = "index1.html" // Hier die Seite angeben zu der nach Vorladen weitergeleitet werden soll
var preloadbarWidth = 300 // Die Länge des Vorladestatusbalkens!
var preloadbarHeight = 15 // Die Höhe des Vorladestatusbalkens
var backgroundOfGradient = "#000000" // Die Hintergrundfarbe des Vorladebalkens
// Startfarbwert des Vorladebalkens - Es muss dabei die der erste, dritte und fünfte Wert des entsprechenden Hexadezimalcodes angegeben werden
startingColor[0] = "f"
startingColor[1] = "f"
startingColor[2] = "f"
// Endfarbwert des Vorladebalkens - Es muss dabei die der erste, dritte und fünfte Wert des entsprechenden Hexadezimalcodes angegeben werden
endingColor[0] = "f"
endingColor[1] = "f"
endingColor[2] = "f"
// BEI PROBLEMEN:
var gap = 7 // BEI JAVASCRIPT ERROR mit diesem Wert experimentieren!!! 2 ist der minimale Wert!!!
// AB HIER NICHTS MEHR ÄNDERN
if (!document.all) location.replace(locationAfterPreload)
var a = 10, b = 11, c = 12, d = 13, e = 14, f=15, i, j, ones = new Array(), sixteens = new Array(), diff = new Array();
var convert = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"), imgLen = yourImages.length;
var loaded = new Array(), preImages = new Array(), currCount = 0, pending = 0, h = 0, hilite = new Array(), cover = new Array();
var num = Math.floor(preloadbarWidth/gap);
for (i = 0; i < 3; i++) {
startingColor[i] = startingColor[i].toLowerCase();
endingColor[i] = endingColor[i].toLowerCase();
startingColor[i] = eval(startingColor[i]);
endingColor[i] = eval(endingColor[i]);
diff[i] = (endingColor[i]-startingColor[i])/num;
ones[i] = Math.floor(diff[i]);
sixteens[i] = Math.round((diff[i] - ones[i])*15);
}
endingColor[0] = 0;
endingColor[1] = 0;
endingColor[2] = 0;
i = 0, j = 0;
while (i <= num) {
hilite[i] = "#";
while (j < 3) {
hilite[i] += convert[startingColor[j]];
hilite[i] += convert[endingColor[j]];
startingColor[j] += ones[j];
endingColor[j] += sixteens[j];
if (endingColor[j] > 15) {
endingColor[j] -= 15;
startingColor[j]++;
}
j++;
}
j = 0;
i++;
}
function loadImages() {
for (i = 0; i < imgLen; i++) {
preImages[i] = new Image();
preImages[i].src = yourImages[i];
loaded[i] = 0;
cover[i] = Math.floor(num/imgLen)*(i+1)
}
cover[cover.length-1] += num%imgLen
checkLoad();
}
function checkLoad() {
if (pending) { changeto(); return }
if (currCount == imgLen) { location.replace(locationAfterPreload); return }
for (i = 0; i < imgLen; i++) {
if (!loaded[i] && preImages[i].complete) {
loaded[i] = 1; pending++; currCount++;
checkLoad();
return;
}
}
setTimeout("checkLoad()",10);
}
function changeto() {
if (h+1 > cover[currCount-1]) {
var percent = Math.round(100/imgLen)*currCount;
if (percent > 100) while (percent != 100) percent--;
if (currCount == imgLen && percent < 100) percent = 100;
defaultStatus = "Loaded " + currCount + " out of " + imgLen + " images [" + percent + "%].";
pending--;
checkLoad();
return;
}
eval("document.all.cell" + (h+1) + ".style.backgroundColor = hilite[h]");;
h++;
setTimeout("changeto()",1);
}
defaultStatus = "Loaded 0 out of " + imgLen + " images [0%]."
// end hiding -->
|
|
|
21.05.2004, 14:16
|
#7
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Zitat:
|
Zitat von hero-master
Ich habe einmal eine Lösung zu Aufgabe 1 anzubieten 
|
...ist das nicht ein bisschen überdimensioniert für die Aufgabenstellung? 
|
|
|
24.05.2004, 07:09
|
#8
|
|
TP-Member
Registriert seit: Feb 2004
|
Hallo Ihr.
Ja da sind schon einiges sachen drin die ich nicht verstehe  einfache lösungen wäre mir schon auch lieber.
|
|
|
24.05.2004, 09:40
|
#9
|
|
TP-Moderator
Registriert seit: Mar 2003
Ort: Hamburg
|
@Stuck: Hauptsache es klappt, oder? 
@Student: Ich verstehe auch nicht alles was da steht, jedoch kann man, wenn man ein wenig der englischen Sprache gewachsen ist, die wichtigsten und entscheidensten Dinge herauslesen 
Hier noch ein JS, noch nicht getestet, wie er funktioniert, aber kürzer auf jeden Falll
HTML-Code:
<script language="JavaScript1.1">
<!--
var locationAfterPreload = "home.htm"
var lengthOfPreloadBar = 150
var heightOfPreloadBar = 7
var yourImages = new Array("images/12.gif","images/bild1.gif","images/bild2.jpg","images/bild3.jpg")
if (document.images) {
var dots = new Array()
dots[0] = new Image(1,1)
dots[0].src = "images/preload_back.gif"
dots[1] = new Image(1,1)
dots[1].src = "images/preload.gif"
var preImages = new Array(),coverage = Math.floor(lengthOfPreloadBar/yourImages.length),currCount = 0
var loaded = new Array(),i,covered,timerID
var leftOverWidth = lengthOfPreloadBar%coverage
}
function loadImages() {
for (i = 0; i < yourImages.length; i++) {
preImages[i] = new Image()
preImages[i].src = yourImages[i]
}
for (i = 0; i < preImages.length; i++) {
loaded[i] = false
}
checkLoad()
}
function checkLoad() {
if (currCount == preImages.length) {
location.replace(locationAfterPreload)
return
}
for (i = 0; i <= preImages.length; i++) {
if (loaded[i] == false && preImages[i].complete) {
loaded[i] = true
eval("document.img" + currCount + ".src=dots[1].src")
currCount++
}
}
timerID = setTimeout("checkLoad()",10)
}
//-->
</script>
|
|
|
24.05.2004, 09:53
|
#10
|
|
TP-Member
Registriert seit: Feb 2004
|
ja dankeschön. werd mir das mal anschaun.
@hero-master keine sorge bin der englischen sprache gewachsen, jedoch hat dies nicht sehr viel damit zu tun 
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:28 Uhr.
|
 |