Dynamische Buttons
Bernd Witzke
0 Michael N.0 Klaus Junge0 dirk
Hallo liebe HelferInnen,
möchte in einem Index-Frame Links über dynamische Buttons in einem 2. Frame aufrufen. Das gewählte Button soll aktiv bleiben - sich also hervorheben gegenüber den anderen Buttons - solange ich auf der gewählten Seite verbleibe. Ein Wechsel der Seite über den nächsten Button soll diesen als aktiv ausweisen, den 1. Button inaktiv schalten. Wie ist so etwas machbar?
Vielen Dank.
Gruß
Bernd
Hallo liebe HelferInnen,
möchte in einem Index-Frame Links über dynamische Buttons in einem 2. Frame aufrufen. Das gewählte Button soll aktiv bleiben - sich also hervorheben gegenüber den anderen Buttons - solange ich auf der gewählten Seite verbleibe. Ein Wechsel der Seite über den nächsten Button soll diesen als aktiv ausweisen, den 1. Button inaktiv schalten. Wie ist so etwas machbar?
Vielen Dank.
Gruß
Bernd
Hallo Bernd,
leg Dir in Deinem Index-Frame alle! benutzten Button (für inaktiv und aktiv) als Objekte an,
dann schreibst Du Dir zwei kurze functions, die ungefähr so aussehen:
but1 = new Image(); but1.src = "but1.gif";
but1on = new Image(); but1on.src = "but1_on.gif";
but2 = new Image(); but2.src = "but2.gif";
but2on = new Image(); but1on.src = "but2_on.gif";
function img_act(aktivierterButton) {
imgOn = eval(aktivierterButton + "aktiv.src");
document[aktivierterButton].src = imgOn;
}
function img_inact(deaktivierterButton) {
imgOff = eval(deaktivierterButton + ".src");
document [deaktivierterButton].src = imgOff;
}
Bei den Links machst Du es dann so:
<A HREF="DeinLinkEins" onClick = "img_act('but1');img_inact('but2');return true" ><IMG border=0 NAME="but1" SRC="but1.gif"></A><BR>
<A HREF="DeinLinkZwei" onClick = "img_act('but2');img_inact('but1');return true" ><IMG border=0 NAME="but1" SRC="but1.gif"></A><BR>
Schematisch gesehen wärs das. Wichtig ist noch, alle inaktiven Buttons müssen dann natürlich inaktiviert werden. Mit ein bischen mehr JS kannst Du Dir natürilch auch den aktivierten Button merken und nur diesen inaktivieren.
Michael N.
dynamische Buttons
Hallo Bernd,
zumindest mit JavaScript geht's.
Anders (Server) sicher auch.
Hab' mal etwas damit (JS) rumgespielt.
Dazu habe ich mir im Head der obersten
Framedefinition ein paar Variablen und Funktionen
definiert, glaube auch ein Array mit den
Knopfbildern.
Geht erstaunlicherweise. Framesets dürfen sonst
nur Framedefinitionen enthalten (+ noframes).
Eine der Variablen sagt etwas darüber aus in
welchem Zustand der Navigationsbalken (Index) ist,
eine andere etwas über das/die Inhaltsframe(s).
Eine der Funktionen heisst UpDateImgs(param)
und wird von jedem relevanten Maus(click)event
aufgerufen. Sie enthält soviel Statements wie
Knöpfe und macht jede Menge if-Abfragen und
lädt die Bildchen um oder (else) auch zurück.
Navigationsbalken alleine geht noch, wenn Deine
Seitenstruktur komplexer ist, kann's lästig
werden. Wenn noch synchrone MouseOvers und
MouseOuts dazukommen, dann tipp und debug man
schön.
Bei mir hat's auch ganz brauchbar funktioniert,
solange ich das Fenster nicht zurechtgezupft habe,
dann werden alle Variablen nämlich 'resettet'.
Ach so, mit animierten GIF's war's auch nicht so
dolle, die hören dann gerne auf animiert zu sein.
Warum Was Wann Wo hab' ich dabei aber nicht ganz
kapiert.
Mit Netscape 3 tut's auf Win3.11 + Win95 + NT4,
mit MSIE 3 auf Win3.11 nicht,
mit MSIE 3 auf Win95 gibt's Fehlermeldungen.
Das war grob mein Ansatz, vielleicht solltest Du
noch bei Christine wildern gehen, sie ist da
Crack!
Klaus
dynamische Buttons
Hallo Bernd,
zumindest mit JavaScript geht's.
Anders (Server) sicher auch.Hab' mal etwas damit (JS) rumgespielt.
Dazu habe ich mir im Head der obersten
Framedefinition ein paar Variablen und Funktionen
definiert, glaube auch ein Array mit den
Knopfbildern.
Geht erstaunlicherweise. Framesets dürfen sonst
nur Framedefinitionen enthalten (+ noframes).Eine der Variablen sagt etwas darüber aus in
welchem Zustand der Navigationsbalken (Index) ist,
eine andere etwas über das/die Inhaltsframe(s).
Eine der Funktionen heisst UpDateImgs(param)
und wird von jedem relevanten Maus(click)event
aufgerufen. Sie enthält soviel Statements wie
Knöpfe und macht jede Menge if-Abfragen und
lädt die Bildchen um oder (else) auch zurück.Navigationsbalken alleine geht noch, wenn Deine
Seitenstruktur komplexer ist, kann's lästig
werden. Wenn noch synchrone MouseOvers und
MouseOuts dazukommen, dann tipp und debug man
schön.Bei mir hat's auch ganz brauchbar funktioniert,
solange ich das Fenster nicht zurechtgezupft habe,
dann werden alle Variablen nämlich 'resettet'.
Ach so, mit animierten GIF's war's auch nicht so
dolle, die hören dann gerne auf animiert zu sein.
Warum Was Wann Wo hab' ich dabei aber nicht ganz
kapiert.Mit Netscape 3 tut's auf Win3.11 + Win95 + NT4,
mit MSIE 3 auf Win3.11 nicht,
mit MSIE 3 auf Win95 gibt's Fehlermeldungen.Das war grob mein Ansatz, vielleicht solltest Du
noch bei Christine wildern gehen, sie ist da
Crack!Klaus
Hallo,
ich hatte mal ein ähnliches Problem. Button, die beim drüberfahren die Farbe wechseln (beim verlassen natürlich wieder zum Alten wechseln) und beim Anklicken noch mal ein anderes Bild zeigen. Das solange aktiv bleibt bis ein anderes Bild angeklickt wird.
Die else- Schleifen brauchst du wohl nicht. Wichtig ist sich eine gute NAmesgebung für die Bilder zu überlegen und einem jeweiligen Bildersatz eine bestimmte Endung zuweisen.
Das Script sieht viel komplizierter aus als es ist.
Nimm 6 Bilder. mache zwei 3er-Staffeln draus. Unten ein kleines Beispiel.
/**
var img_nach;
var img_vor;
var img_test;
var img_click;
var img_name;
function move_in(img_num,img_name)
{
if (document.images)
{
Bild=document.images[img_num].src;
Suche=Bild.indexOf("b.jpg");
if(Suche!="-1")
{
}
else
{
img_test="in";
document.images[img_num].src=img_name;
}
}
}
function move_out(img_num,img_name)
{
if (document.images)
{Bild=document.images[img_num].src;
Test=Bild.indexOf("b.jpg");
if(Test!="-1")
{}
else
{
if(img_test=="in")
{
document.images[img_num].src=img_name;
}
}
}
}
///
function bildwechsel(img_num,img_name)
{
if(document.images)
{
if(img_nach=="click")
{
if(img_num!=img_click)
{
Bild=document.images[img_click].src;
Test=Bild.indexOf("b.jpg");
if(Test!="-1")
{
Folge=img_vor;
Tausch=Folge.replace(/b.jpg$/,"sl.jpg");
document.images[img_click].src=Tausch;
document.images[img_num].src=img_name;
img_click=img_num;
img_vor=img_name;
}
}
}
}
else
{
if(document.images){
document.images[img_num].src=img_name;
img_click=img_num;
img_vor=img_name;
}
img_nach="click";
}
}
}
<a href="javascript:bildwechsel('PZ','/121b.jpg');(Hier Befehl für den Link)"onmouseover="move_in('PZ','/121rsl.jpg')" onmouseout="move_out('PZ','/121sl.gif')"><img src=/121sl.gif name="PZ" HEIGHT=16 Width=118 border=0></a><br>
**/
Wenn du natürlich von einem Frame auf den anderern zugreifen möchtest mußt du halt alles neu referenzieren. Hier wird zwar ein Button mehr verwendet als du urspünglich wolltest, sieht aber auch ganz gut aus.
Funktioniert natürlich nur in einem 4er Brwoser.
Viel Spaß beim Klammern prüfen und debuggen. Das Script läuft, das kann ich dir versprechen.
Aber du mußt halt einige Sachen (vor allem Klammern) prüfen. Oben sind glaube ich zumindest zwei Variablen zu viel angegeben. Aber zuviel schadet ja nicht.
dirk