2 Javascripts parallel
VolkerE
- javascript
Hallo,
es gab schon genug Beiträge zu meinem Problem, bekomme es aber leider nicht hin.
Ich habe ein Script, mit der die Navigationsleiste gespeist wird (Rollover etc.) und mit einem anderen möchte ich einen Rollover-Effekt eine Bildgalerie aufpeppen.
Hier mal das erste Script:
<script language="JavaScript">
<!--
function FP_preloadImgs() {//v1.0
var d=document,a=arguments; if(!d.FP_imgs) d.FP_imgs=new Array();
for(var i=0; i<a.length; i++) { d.FP_imgs[i]=new Image; d.FP_imgs[i].src=a[i]; }
}
function FP_swapImg() {//v1.0
var doc=document,args=arguments,elm,n; doc.$imgSwaps=new Array(); for(n=2; n<args.length;
n+=2) { elm=FP_getObjectByID(args[n]); if(elm) { doc.$imgSwaps[doc.$imgSwaps.length]=elm;
elm.$src=elm.src; elm.src=args[n+1]; } }
}
function FP_getObjectByID(id,o) {//v1.0
var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById) el=o.getElementById(id);
else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return el;
if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } }
return null;
}
// -->
</script>
<body onload="FP_preloadImgs(/*url*/'images/frame/button2.jpg', /*url*/'images/frame/button3.jpg', /*url*/'images/frame/button7.jpg', /*url*/'images/frame/button8.jpg', /*url*/'images/frame/button13.jpg', /*url*/'images/frame/button14.jpg', /*url*/'images/frame/button18.jpg', /*url*/'images/frame/button19.jpg', /*url*/'images/frame/button20.jpg', /*url*/'images/frame/button21.jpg', /*url*/'images/frame/button6.jpg', /*url*/'images/button5.jpg', /*url*/'images/button6.jpg')" bgcolor="#A6A6A6">
und das zweite für den Rollover der Bildgalerie:
<script type="text/javascript">
Normal1 = new Image();
Normal1.src = "galerie/hochzeitfertig3.jpg"; /* erste Standard-Grafik */
Highlight1 = new Image();
Highlight1.src = "galerie/hochzeitfertig3r.jpg"; /* erste Highlight-Grafik */
/* usw. fuer alle weiteren zu benutzenden Grafiken */
function Bildwechsel (Bildnr, Bildobjekt) {
window.document.images[Bildnr].src = Bildobjekt.src;
}
</script>
Der Rollover des zweiten Scripts , wird an einer Stelle angezeigt, wo es überhaupt nicht hingehört. Ich habe ein "Banner" an der obersten Seite. Wenn ich mit der Maus über "hochzeitfertig3.jpg" gehe, erscheint "hochzeitfertig3r.jpg" wo vorher der Banner war. Gehe ich von dem Bild wieder runter, ist an der Stelle des Banners das Ursprungsbild hochzeitfertig3.jpg zu sehen. Der Banner ist dann natürlich weg.
Ich hoffe es ist einigermaßen verständlich.
Gruß
Hallo
Ich hoffe es ist einigermaßen verständlich.
Eine kurze Verständnisfrage vorweg: Das obere Script ist automatisch von MS FrontPage erzeugt worden?
Also, ich könnte an dieser Stelle auf Grundlagen verweisen, die Suchfunktion dieses Forums anpreisen oder anmerken, dass meine Glaskugel in Reparatur ist. Aber da mir das nicht sonderlich hilfreich scheint, stelle ich stattdessen eine weitere Frage zum Verständnis: An welcher Stelle werden all die angegebenen Funktionen tatsächlich aufgerufen?
Gruß
Waldi
Mahlzeit VolkerE,
die ersten von Dir gezeigten Funktionen sind vermutlich von Frontpage oder einem ähnlich grottigen Programm automagisch erzeugt und bereiten entsprechende Magenkrämpfe. Verzichte im Sinne Deines eigenen Nervenkostüms dringend auf diese Programme, lerne stattdessen lieber die Grundlagen von HTML, CSS, Javascript & Co. und erstelle Deine Seiten manuell ...
Zu eigentlichen Problem:
Normal1 = new Image();
Normal1.src = "galerie/hochzeitfertig3.jpg"; /* erste Standard-Grafik */
Highlight1 = new Image();
Highlight1.src = "galerie/hochzeitfertig3r.jpg"; /* erste Highlight-Grafik *//* usw. fuer alle weiteren zu benutzenden Grafiken */
Das klingt so, als ob Du *eigentlich* ein Array für alle Deine Bilder benutzen möchtest. Das gesamte Problem klingt allerdings eher so, als ob Du lieber CSS für Grafiken, die sich beim-Drüberfahren-mit-der-Maus verändern, nutzen möchtest.
function Bildwechsel (Bildnr, Bildobjekt) {
window.document.images[Bildnr].src = Bildobjekt.src;
}
</script>
Diese Funktion erwartet also zwei Parameter: der erste ist der Index der entsprechenden Grafik im Dokument, der zweite eine Referenz auf ein Grafikobjekt.
Wie und wo genau rufst Du diese Funktion auf?
Der Rollover des zweiten Scripts , wird an einer Stelle angezeigt, wo es überhaupt nicht hingehört. Ich habe ein "Banner" an der obersten Seite. Wenn ich mit der Maus über "hochzeitfertig3.jpg" gehe, erscheint "hochzeitfertig3r.jpg" wo vorher der Banner war. Gehe ich von dem Bild wieder runter, ist an der Stelle des Banners das Ursprungsbild hochzeitfertig3.jpg zu sehen. Der Banner ist dann natürlich weg.
Das klingt nämlich so, als ob Du schlicht und einfach übersehen hättest, dass Dein Dokument mehr Grafiken besitzt als Du gezählt hast ...
MfG,
EKKi