tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
16
ZUGRIFFE
743
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    marcus24 marcus24 ist offline Mitglied Bronze
    Registriert seit
    Mar 2005
    Beiträge
    40
    Hy,
    Also ich hab in meinem Script, frames mittels PHP simuliert und Menüs mit Untermenüs erstellt. Soweit ist auch alles klar. Nur steh ich jetzt vor dem Problem, das ich den Bildertausch mit Javascript nicht hinbekomme :/
    Ich Poste auch gleich mal den Code, ....

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    
    <script language="JavaScript"> 
    <!-- 
    function doHover(b,i) 
    { 
    f = document[b].src; 
    f = f.substr(0,f.length-5); 
    f+=i+'.png'; 
    document[b].src = f; 
    } 
    //--> 
    </script> 
     
    <?php 
     
         // Hier steht der ganze PHP Codeteil 
     
    ?> 
     
    <a href="index.php" onMouseOver="doHover('home','b')" onMouseOut="doHover('home','a')" 
    onMouseDown="doHover('home','c')"><img src="gif/home_a.png" name="home" 
    alt="Home" border="0"></a><br> 
     
    <a href="index.php?section=wir_ueber_uns" onMouseOver="doHover('wir','b')" 
    onMouseOut="doHover('wir','a')" onMouseDown="doHover('wir','c')" onmouseup="doHover
    ('wir','a')"><img src="gif/wir_a.png" name="wir" alt="Wir &uuml;ber uns" 
    border="0"></a><br> 
     
    <a href="index.php?section=service" onMouseOver="doHover('service','b')" 
    onMouseOut="doHover('service','a')" onMouseDown="doHover('service','c')" 
    onmouseup="doHover('service','a')"><img src="gif/service_a.png" name="service" 
    alt="Service" border="0"></a><br> 
     
    <a href="index.php?section=news" onMouseOver="doHover('news','b')" 
    onMouseOut="doHover('news','a')" onMouseDown="doHover('news','c')" 
    onmouseup="doHover('news','a')"><img src="gif/news_a.png" name="news" alt="News" 
    border="0"></a><br> 
     
    <a href="index.php?section=kontakt" onMouseOver="doHover('kontakt','b')" 
    onMouseOut="doHover('kontakt','a')" onMouseDown="doHover('kontakt','c')" 
    onmouseup="doHover('kontakt','a')"><img src="gif/kontakt_a.png" name="kontakt" 
    alt="Kontakt" border="0"></a><br> 
     
    <a href="index.php?section=sitemap" onMouseOver="doHover('sitemap','b')" 
    onMouseOut="doHover('sitemap','a')" onMouseDown="doHover('sitemap','c')" 
    onmouseup="doHover('sitemap','a')"><img src="gif/sitemap_a.png" name="sitemap" 
    alt="Sitemap" border="0"></a><br> 
     
    <a href="index.php?section=agb" onMouseOver="doHover('agb','b')" 
    onMouseOut="doHover('agb','a')" onMouseDown="doHover('agb','c')" onmouseup="doHover
    ('agb','a')"><img src="gif/agb_a.png" name="agb" alt="AGB" border="0"></a><br>

    Nun zum Ablauf: Bei Aufruf der Seite werden alle links mit BildXY_a.png dargestellt. Bewegt ein User den Courser über nen Link, dann wird der link mit BildXY_b.png dargestellt. Und wenn ein User einen Link anklickt, wird der Link mit BildXY_c.png symbolisiert. Das einzige Problem was ich hierbei habe ist, das nach klicken eines linkes zwar das BildXY_c.png aufgerufen wird, aber nach loslassen der Maustaste, zeigt er wieder BildXY_a.png an. Wie oder was muss ich verändern oder hinzufügen, das beim klicken eines linkes das BildXY_c.png bleibt und erst wieder wechselt wenn ich einen anderen Link aufrufe?
    Geändert von marcus24 (08.06.05 um 20:31 Uhr)
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Speichere das angeklickte Bild in einer Variablen.

    Vorgehensweise:
    Eingangs der Funktion prüfe, ob [b]document mit dem Inhalt dieser Variablen übereinstimmt. Wenn ja, verlasse die Funktion per return;

    Wenn i "c" ist, weise dem Inhalt des aktiven Bildes das "a"-Bild zu, danach speichere [b]document in der besagten Variablen, und weise diesem Bild das "c"-Bild zu.
     

  3. #3
    marcus24 marcus24 ist offline Mitglied Bronze
    Registriert seit
    Mar 2005
    Beiträge
    40
    Hab ich mir ja fast gedacht
    Aber leider funktioniert das nicht so wie ich will. Kann aber auch daran liegen das ich mich wenig mit Javascript auskenne.
    Ich habe meinen oberen Code durch diesen ersetzt:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    [font=Courier]<script type="text/javascript">[/font]
    [font=Courier]<!-- 
    function doHover(b,i){ 
     var f = document[b].src; 
     if(f.substr(f.length-5)=='c.png'&&i=='a'){return true;} 
     f = f.substr(0,f.length-5); 
     f+=i+'.png'; 
     document[b].src = f; 
    } 
    //--> 
    </script> [/font]
    Aber es funktioniert nicht. Kann mit bitte jemand sagen was ich falsch mache und eventuell den richtigen Lösungsweg posten? Bin für jede Hilfe Dankbar
     

  4. #4
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Probiers mal hiermit:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    
    <script type="text/javascript"> 
    <!-- 
    objImg=false;
    function doHover(i,s) 
    { 
    if(i==objImg)return;
    if(s=='c')
        {
            if(objImg)
                {
                    f = objImg.src; 
                    f = f.substr(0,f.length-5); 
                    f+='a.png';
                    objImg.src=f;
                }
             objImg=i;
        }
        f = i.src; 
        f = f.substr(0,f.length-5); 
        f+=s+'.png';
        i.src=f;
    } 
     
     
    function init()
    {
    for(i=0;i<document.images.length;++i)
        {
            if(document.images[i].name=='btn')
                {
                    document.images[i].onclick=new Function('f1','doHover(this,"c")');
                    document.images[i].onmouseover=new Function('f2','doHover(this,"b")');
                    document.images[i].onmouseout=new Function('f1','doHover(this,"a")');
                }
        }
    }
    window.onload=init;
     
    //--> 
    </script> 
     
     
    <a href="#"><img src="gifs/home_a.png" name="btn" alt="Home" border="0"></a><br>
    <a href="#"><img src="gifs/wir_a.png" name="btn" alt="wir" border="0"></a>
    ......usw
    ....das macht das von mir Beschriebene.
    Obendrein erspart es dir noch das umständliche Notieren der ganzen Funktionsaufrufe, du musst den ganzen bildern nur den Namen "btn" geben...fertig
     

  5. #5
    marcus24 marcus24 ist offline Mitglied Bronze
    Registriert seit
    Mar 2005
    Beiträge
    40
    Ich hab alles so, wie du es beschrieben hast gemacht, aber entweder ist da ein hund in dem Code oder ich bin einfach nur zu dumm dafür

    Jetzt macht er aber trotzdem das gleiche wie ich schon oben beschrieben hab. Nach dem Klick auf nen Links bleibt er nicht auf _c.png sonder springt wieder zu _a.png :/
    Geändert von marcus24 (10.06.05 um 13:10 Uhr)
     

  6. #6
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Da muss ein Hund im Code sein, allerdings in deinem
    http://doktormolle.de/temp/btn/index.htm
     

  7. #7
    marcus24 marcus24 ist offline Mitglied Bronze
    Registriert seit
    Mar 2005
    Beiträge
    40
    Da muss ein Hund im Code sein, allerdings in deinem
    http://doktormolle.de/temp/btn/index.htm
    Ja, da könntest allerding recht haben. Keine Ahnung warum der gleiche Code bei mir nicht funkt :/ Schon langsam bin ich am verzweifeln
    Kann das eventuell mit meinem PHP Code liegen das die sich nicht vertragen oder was weiss ich :/

    ********* Edit *********

    Also ich hab jetzt herum experimentiert. Und zwar, wenn ich deinen code nehme, dann funktioniert er ohne Verweise ....
    Code :
    1
    2
    3
    
    <img src="gif/home_a.png" name="btn" alt="Home" border="0"><br> 
    <img src="gif/wir_a.png" name="btn" alt="Wir &uuml;ber uns" border="0"><br> 
    <img src="gif/service_a.png" name="btn" alt="Service" border="0">

    Wenn ich aber Verweise hinzufüge, dann funktioniert es nicht mehr :/
    Geändert von marcus24 (10.06.05 um 13:55 Uhr)
     

  8. #8
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Welches Zielfenster haben denn deine Links?
    Wenn es dasselbe Fenster ist... dann wird beim Klick logischerweise ein neues Dokument geladen, ...der Effekt ist dann wirkungslos.
     

  9. #9
    marcus24 marcus24 ist offline Mitglied Bronze
    Registriert seit
    Mar 2005
    Beiträge
    40
    Ja bin ich dann gestern auch draufgekommen. Und was muss ich tun das ich diesen effekt bei den Links auch habe?
     

  10. #10
    Avatar von solomat
    solomat solomat ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Ort
    D-10365 Berlin [Lichtenberg]
    Beiträge
    140
    Ich will das Thema mal wieder aufgreifen da ich grad vor dem gleichen/ähnlichen Problem stehe und eine Lösung suche.

    Ich hab eine Menüleiste mit Grafikbuttons, diese wechseln beim rüberfahren mit der Maus. Das funktioniert. Nur soll das gewechselte Bild dann auch da bleiben wenn man auf den Button geklickt hat.

    Solange kein Link da ist funktioniert das Script bei mir auch, aber mit Link nich mehr. Benutze das php-section-Menü

    LG Maik
     
    [multi:mat] - Neue DJ´s braucht das Land!

  11. #11
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Mmmmh..bin ich etwa der einzige auf der Welt, dem schon mal aufgefallen ist, dass eine Seite neu geladen wird, wenn man auf einen Link klickt

    Ist doch logisch...die neue Seite weiss nix von dem, was JS vorher gemacht hat.
    Wenn du PHP hast, vergleiche die URL der aktuellen Seite mit den Linkzielen...sind beide identisch, gebe den HTML-Code für den "aktiven" Button aus...fertig
     

  12. #12
    Avatar von solomat
    solomat solomat ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Ort
    D-10365 Berlin [Lichtenberg]
    Beiträge
    140
    Hab das so gemacht. Es funktioniert zwar, jedoch gehts doch sicher noch einfacher. Kann mir jemand sagen wie? Machen will ich es selber....muss ja lernen.
    PHP-Code:
    <?php
    $akts 
    'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
    $akth 'http://'.$_SERVER['HTTP_HOST'];
    //-------HOME----
    if ($akts==$akth.'/start/index.php?section=home') {
    $home "<a href=index.php?section=home><img src=../images/menue/menue_02_b.gif alt=HOME width=39 height=18 border=0></a>";
    }
    else {
    $home "<a href=index.php?section=home onMouseOver=MM_swapImage('Image1','','../images/menue/menue_02_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_02_a.gif alt=HOME name=Image1 width=39 height=18 border=0 id=Image1></a>";
    }
    //-------HOME----
    //
    //-------EINFÜHRUNG----
    if ($akts==$akth.'/start/index.php?section=einfuehrung') {
    $einfuehrung "<a href=index.php?section=einfuehrung><img src=../images/menue/menue_03_b.gif alt=EINF&Uuml;HRUNG width=64 height=18 border=0></a>";
    }
    else {
    $einfuehrung "<a href=index.php?section=einfuehrung onMouseOver=MM_swapImage('Image3','','../images/menue/menue_03_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_03_a.gif alt=EINF&Uuml;HRUNG name=Image3 width=64 height=18 border=0 id=Image3></a>";
    }
    //
    //-------NEWS----
    if ($akts==$akth.'/start/index.php?section=news') {
    $news "<a href=index.php?section=news><img src=../images/menue/menue_04_b.gif alt=NEWS width=41 height=18 border=0></a>";
    }
    else {
    $news "<a href=index.php?section=news onMouseOver=MM_swapImage('Image4','','../images/menue/menue_04_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_04_a.gif alt=NEWS name=Image4 width=41 height=18 border=0 id=Image4></a>";
    }
    //-------NEWS----
    //
    //-------BEITRÄGE----
    if ($akts==$akth.'/start/index.php?section=beitraege') {
    $beitraege "<a href=index.php?section=beitraege><img src=../images/menue/menue_05_b.gif alt=BEITRÄGE width=52 height=18 border=0></a>";
    }
    else {
    $beitraege "<a href=index.php?section=beitraege onMouseOver=MM_swapImage('Image5','','../images/menue/menue_05_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_05_a.gif alt=BEITRÄGE name=Image5 width=52 height=18 border=0 id=Image5></a>";
    }
    //-------BEITRÄGE----
    //
    //-------DOKUMENTE----
    if ($akts==$akth.'/start/index.php?section=dokumente') {
    $dokumente "<a href=index.php?section=dokumente><img src=../images/menue/menue_06_b.gif alt=DOKUMENTE width=65 height=18 border=0></a>";
    }
    else {
    $dokumente "<a href=index.php?section=dokumente onMouseOver=MM_swapImage('Image6','','../images/menue/menue_06_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_06_a.gif alt=DOKUMENTE name=Image6 width=65 height=18 border=0 id=Image6></a>";
    }
    //-------DOKUMENTE----
    //
    //-------CARTA MENSUAL----
    if ($akts==$akth.'/start/index.php?section=carta') {
    $carta "<a href=index.php?section=carta><img src=../images/menue/menue_07_b.gif alt=CARTA MENSUAL width=81 height=18 border=0></a>";
    }
    else {
    $carta "<a href=index.php?section=carta onMouseOver=MM_swapImage('Image7','','../images/menue/menue_07_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_07_a.gif alt=CARTA MENSUAL name=Image7 width=81 height=18 border=0 id=Image7></a>";
    }
    //-------CARTA MENSUAL----
    //
    //-------BILDER----
    if ($akts==$akth.'/start/index.php?section=bilder') {
    $bilder "<a href=index.php?section=bilder><img src=../images/menue/menue_08_b.gif alt=BILDER width=39 height=18 border=0></a>";
    }
    else {
    $bilder "<a href=index.php?section=bilder onMouseOver=MM_swapImage('Image8','','../images/menue/menue_08_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_08_a.gif alt=BILDER name=Image8 width=39 height=18 border=0 id=Image8></a>";
    }
    //-------BILDER----
    //
    //-------POLITISCHE GEFANGENE----
    if ($akts==$akth.'/start/index.php?section=polit') {
    $polit "<a href=index.php?section=polit><img src=../images/menue/menue_09_b.gif alt=POLITISCHE GEFANGENE width=114 height=18 border=0></a>";
    }
    else {
    $polit "<a href=index.php?section=polit onMouseOver=MM_swapImage('Image9','','../images/menue/menue_09_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_09_a.gif alt=POLITISCHE GEFANGENE name=Image9 width=114 height=18 border=0 id=Image9></a>";
    }
    //-------POLITISCHE GEFANGENE----
    //
    //-------MENSCHENRECHTE----
    if ($akts==$akth.'/start/index.php?section=menschenrechte') {
    $menschenrechte "<a href=index.php?section=menschenrechte><img src=../images/menue/menue_10_b.gif alt=MENSCHENRECHTE width=93 height=18 border=0></a>";
    }
    else {
    $menschenrechte "<a href=index.php?section=menschenrechte onMouseOver=MM_swapImage('Image10','','../images/menue/menue_10_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_10_a.gif alt=MENSCHENRECHTE name=Image10 width=93 height=18 border=0 id=Image10></a>";
    }
    //-------MENSCHENRECHTE----
    //
    //-------VERANSTALTUNGEN----
    if ($akts==$akth.'/start/index.php?section=veranstaltungen') {
    $veranstaltungen "<a href=index.php?section=bilder><img src=../images/menue/menue_11_b.gif alt=VERANSTALTUNGEN width=91 height=18 border=0></a>";
    }
    else {
    $veranstaltungen "<a href=index.php?section=veranstaltungen onMouseOver=MM_swapImage('Image11','','../images/menue/menue_11_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_11_a.gif alt=VERANSTALTUNGEN name=Image11 width=91 height=18 border=0 id=Image11></a>";
    }
    //-------VERANSTALTUNGEN----
    //
    //-------KONTAKT----
    if ($akts==$akth.'/start/index.php?section=kontakt') {
    $kontakt "<a href=index.php?section=kontakt><img src=../images/menue/menue_12_b.gif alt=KONTAKT width=48 height=18 border=0></a>";
    }
    else {
    $kontakt "<a href=index.php?section=kontakt onMouseOver=MM_swapImage('Image12','','../images/menue/menue_12_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_12_a.gif alt=KONTAKT name=Image12 width=48 height=18 border=0 id=Image12></a>";
    }
    //-------KONTAKT----
    //
    //-------LINKS----
    if ($akts==$akth.'/start/index.php?section=links') {
    $links "<a href=index.php?section=links><img src=../images/menue/menue_13_b.gif alt=BILDERr width=37 height=18 border=0></a>";
    }
    else {
    $links "<a href=index.php?section=links onMouseOver=MM_swapImage('Image13','','../images/menue/menue_13_b.gif',1) onMouseOut=MM_swapImgRestore()><img src=../images/menue/menue_13_a.gif alt=BILDER name=Image13 width=37 height=18 border=0 id=Image13></a>";
    }
    //-------LINKS----
    ?>
     
    [multi:mat] - Neue DJ´s braucht das Land!

  13. #13
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Du kannst es auch per JS machen:
    Vergleiche eingangs von MM_swapImage() das Linkziel mit der aktuellen location...sind beide identisch, verlässt du die Funktion per return ....fertig.
     

  14. #14
    Avatar von solomat
    solomat solomat ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Ort
    D-10365 Berlin [Lichtenberg]
    Beiträge
    140
    Ohje, Javascript liegt mir so garnich. Aber probieren würd ich es mal. Wie stell ich denn so einen Vergleich?
     
    [multi:mat] - Neue DJ´s braucht das Land!

  15. #15
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Vergleichen tut man in JS genauso, wie auch in anderen Sprachen, bspw. PHP:
    Code :
    1
    
    if(a==b){anweisung;}
     

Ähnliche Themen

  1. [Javascript] Problem: kann kein Javascript - brauche Funktion
    Von matze93 im Forum Stellenangebote (unentgeltlich)
    Antworten: 5
    Letzter Beitrag: 14.04.09, 08:42
  2. Javascript IE problem
    Von DiDiJo im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 14.11.08, 12:10
  3. JavaScript Problem mit Formular und JavaScript Funktion
    Von Sniky76 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 28.03.08, 16:32
  4. Problem mit JavaScript
    Von jma im Forum .NET Web und Kommunikation
    Antworten: 3
    Letzter Beitrag: 19.08.07, 19:44
  5. JavaScript Problem
    Von AuthorsCrash im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 26.06.05, 14:38