tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
10
ZUGRIFFE
2757
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    juliusk juliusk ist offline Mitglied
    Registriert seit
    Oct 2005
    Beiträge
    11
    Guten Abend.

    Folgender Wunsch:
    Ich möchte auf eine komplette Seite bezogen
    onMouseOver dem jeweiligen Element einer Klasse
    eine andere Klasse zuweisen und onMouseOut
    wieder zurück. Also im Prinzip das hier
    Code :
    1
    2
    3
    
    class="nichtOver" 
    onMouseOver="this.className='jetztOver'"; 
    onMouseOut="this.className='nichtOver'";
    aber mit einer globalen Funktion auf alle Elemente
    der Klasse angewandt. Ist die Frage verständlich?
    Ich hatte sowas schonmal, bekomme es aber nicht
    mehr hin. Kann mir vielleicht jemand weiterhelfen?

    Gruß - Julius.
    Geändert von juliusk (17.05.08 um 01:05 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
    Moin,

    da überwachst du am Besten die beiden Events fürs Dokument.
    Da diese Events ja standardmässig "bubblen"...also an Kindelemente vererbt werden, hast du damit automatisch alle Seitenelemente überwacht
    Musst dann nur noch ermitteln, was und wer gefeuert hat und dementsprechend den Klassen-Namen zuweisen...
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    <script type="text/javascript">
    <!--
    document.onmouseout=document.onmouseover=function(e)
    {
      e=(window.event)?window.event:e;
      o=(window.event)?e.srcElement:e.target;
      o.className=((e.type=='mouseover')?'jetzt':'nicht')+'Over';
    }
    //-->
    </script>
     

  3. #3
    juliusk juliusk ist offline Mitglied
    Registriert seit
    Oct 2005
    Beiträge
    11
    Nach einiger Bastelei kann ich nun beruhigt einschlafen.
     

  4. #4
    stephanie-cgn stephanie-cgn ist offline Mitglied
    Registriert seit
    May 2008
    Beiträge
    15
    Prima. Gute Nacht
    Könnt ihr mir denn sagen, wie das weitergeht?
    Ich kappier noch nicht genug, um das selber zu schaffen.
    die Steph
     
    Frauen und Teknich

  5. #5
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin

    Was geht wie weiter?
    Die Eventüberwachung ist so fertig, du musst das Skript nur noch irgendwo in die Seite tun.

    Tu kannst dann für alle beliebigen Elemente für die Selektoren .jetztOver und .nichtOver Formate definieren, somit ein Workaround für die Pseudoklasse :hover in Browsern, welche dies nur in Links interpretieren.
     

  6. #6
    Maik Tutorials.de Gastzugang
    Hi,

    und hier noch etwas Quellcode zur Verdeutlichung

    Code :
    1
    2
    3
    4
    
    <style type="text/css">
    .nichtOver { color:red; }
    .jetztOver { color:green; }
    </style>
    Code :
    1
    
    <div class="nichtOver">Textbox, die ihre Schriftfarbe beim Überfahren ändert.</div>
     

  7. #7
    stephanie-cgn stephanie-cgn ist offline Mitglied
    Registriert seit
    May 2008
    Beiträge
    15
    Sorry, aber bei mir ändert sich da alles. Wild durcheinander.
    Die Box immerDefault bleibt nicht. Also die ändert sich auch.


    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
    
     
    <html>
     
    <head>
     
    <script type="text/javascript">
    <!--
    document.onmouseout=document.onmouseover=function(e)
    {
      e=(window.event)?window.event:e;
      o=(window.event)?e.srcElement:e.target;
      o.className=((e.type=='mouseover')?'jetzt':'nicht')+'Over';
    }
    //-->
    </script>
     
    <style type="text/css">
    <!--
    .nichtOver { color:red; }
    .jetztOver { color:green; }
    -->
    </style>
     
    </head>
     
    <body>
     
    <br><div class="nichtOver">Textbox rot-grün-rot</div>
    <br><div>Textbox immerDefault</div>
     
    </body>
     
    </html>


    Und ich versteh noch nicht, wie ich damit mehrere
    unterschiedliche Klassen bedienen kann.
    Also so wie auf die Klassen jetztOver zu nichtOver mit Rot zu Grün
    und dann auf die Klassen mitMaus zu ohneMaus mit blau zu gelb.

    Aber das krieg ich nicht hin.
    Bin ich jetzt richtig doof oder hänge ich nur grad?
     
    Frauen und Teknich

  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
    Hat ja auch niemand behauptet, dass sie sich nicht ändern würde....sämtliche Seitenelemente werden von der Funktion erfasst.

    Hier mal das Ganze mit ner kleinen Änderung diesbetreffend...es werden jetzt nur noch Elemente berücksichtigt, welche als Klassennamen jetztOver oder nichtOver haben
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    <script type="text/javascript">
    <!--
    document.onmouseout=document.onmouseover=function(e)
    {
      
      e=(window.event)?window.event:e;
      o=(window.event)?e.srcElement:e.target;
      if(o.className.match(/(jetzt|nicht)Over/))
        {
          o.className=((e.type=='mouseover')?'jetzt':'nicht')+'Over';
        }
    }
    //-->
    </script>
     

  9. #9
    stephanie-cgn stephanie-cgn ist offline Mitglied
    Registriert seit
    May 2008
    Beiträge
    15
    Verstehe. Also zumindest glaub ich das jetzt
    Respekt und Dank. Weiß grad nur garnicht, wovon mehr!
     
    Frauen und Teknich

  10. #10
    stephanie-cgn stephanie-cgn ist offline Mitglied
    Registriert seit
    May 2008
    Beiträge
    15
    Wow, das ist ja noch vielbesser als ich dachte!
    Jetzt weiß ich auch, warum Du das ganze Dokument abfragst!
     
    Frauen und Teknich

  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
    Na dann viel Spass dabei
     

Ähnliche Themen

  1. OnMouseOver value eines Inputs ändern
    Von theCean im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 02.10.06, 00:30
  2. (Marquee) class ändern
    Von kinsh im Forum HTML & XHTML
    Antworten: 3
    Letzter Beitrag: 05.10.05, 14:09
  3. onMouseOver Problem (Hintergrundfarbe ändern)
    Von IoNsTrEaM im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 19.09.04, 12:46
  4. Textfarbe bei onmouseover ändern
    Von Chandini im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 20.07.04, 14:45
  5. Antworten: 7
    Letzter Beitrag: 30.07.03, 15:18