Matthias Apsel: CSS Transition bei hovern eines anderen Elements

Beitrag lesen

Om nah hoo pez nyeetz, Pfandleiher!

Allen Überlegungen muss eine HTML-Struktur zugrunde liegen. Die solltest du zeigen. Sonst kommen hier Lösungsvorschläge, die du dann mit "geht in meinem Fall aber nicht, weil ..." beantworten musst.

Das sehe ich ein:

<div id="page">

<div id="background">
    <div id="green">Green BG</div>
    <div id="red">Red BG</div>
  </div>

<div id="content">
    <div id="col1">hierarchical menu</div>
    <div id="col2">
       <a href="redpage.htm">Red Topic</a>
       <a href="greenpage.htm">Green Topic</a>
    </div>
    <div id="col3">extra content</div>

</div>
</div>

  
omg. <http://blog.selfhtml.org/2013/02/02/html5-serie-der-weg-zu-html5/>  
  
~~~html
<html>  
  <body>  
     <nav>hierarchical menu</nav>  
     <header>Text mit verschiedenen Links, die zum grünen oder roten topic führen  
        <a class="topic1" href="...">mit</a> einer Klassenbezeichnung, in der rot oder  
          grün nicht <a class="topic2" href="...">vorkommen</a>  
     </header>  
     ...  
  </body>  
</html>

wäre deutlich besseres HTML. (siehe http://wiki.selfhtml.org/wiki/HTML/Seitenstrukturierung zur Verwendung der Elemente)

Wie ist denn der Startzustand der Seite? Neutral?

html {background: red;}  
body {background: green;  
      transition: all ease .1s;} /* [link:http://www.w3.org/TR/css3-transitions/#transition-timing-function@title=timing-functions] */  
  
body.topic2 {background: transparent;}

opacity geht in diesem Beispiel nicht, weil dadurch das ganze Element durchsichtig wird und nicht nur der Hintergrund.

Folgendes JavaScript erledigt die Umschaltung:

function aendere() {  
   e = document.body;  
   if (e.className == "topic2") e.className=""; else e.className="topic2";  
}

Wenn du magst, Eventhandling nach molily. für den Anfang könnte es der eventhandler onmouseover (und onmouseout, falls es eine neutrale Seitenansicht gibt) sein.

Matthias

--
1/z ist kein Blatt Papier.