zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden bei 'hover' alle Nachbar-Elemente ändern

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 11.06.2013, 10:51
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 22.03.2006
Beiträge: 387
gaby sorgt für eine eindrucksvolle Atmosphäre
Standard bei 'hover' alle Nachbar-Elemente ändern

Hallo,

Ich suche eine JS-Lösung (kein Jquery) für folgendes Szenario:

Bei hover über einem der Hauptlinks soll dieser einen Hover-Effekt bekommen, und gleichzeitig ALLE anderen Hauptlinks eine Halbtransparenz.
Wenn die Maus zwischen den Links steht, soll kein Link transparent sein.

Das Problem ist mit reinem CSS nur bedingt lösbar, denn der Geschwister-Selektor selektiert ja nur die im Quellcode nachfolgenden, nicht aber auch noch die vorangehenden Elemente.

Bsp-Datei:
general siebling

Ich habe es jetzt erstmal so gelassen, und dann mit JS nur ergänzt, daß bei 'hover' auch die vorangehenden Links transparent werden.

testdatei

Es funktioniert nun, wie gewünscht, jedoch ist der JS-Code einfach nur grausam.

Wie müßte ich das JavaScript denn ändern, um das Ganze ein bißchen zu optimieren?
Jquery möchte ich nur für diesen Effekt eigentlich nicht verwenden.

Danke im Vorraus für eine Antwort.


Grüße
gaby
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 11.06.2013, 16:09
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

PHP-Code:
<script>
+function() {
var 
element document.getElementById('liste');
if(!
element) return;
var list = [];
for(var 
0li element.getElementsByTagName('li'); li[i];i++){
    if(
li[i].className === 'main') {
        list.
push(li[i]);
        
li[i].onmouseover = function() {
            var 
_this this;
            list.forEach( function(
item) {
                if(
item !== _this) {
                    
item.style.backgroundColor 'rgba(0, 255, 0, .2)';
                }
            });
        };
        
li[i].onmouseout = function() {
            list.forEach( function(
item) {item.style.backgroundColor 'rgba(0, 255, 0, 1)';});
        };
    }
}
}();
</script> 
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 11.06.2013, 20:42
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 22.03.2006
Beiträge: 387
gaby sorgt für eine eindrucksvolle Atmosphäre
Standard

Vielen vielen Dank für den Code!
Das sieht doch jetzt schon viel ordentlicher aus.

Ich baue ihn nachher ein, bin gerade nach Hause gekommen.

Grüße
Gaby
Mit Zitat antworten
Antwort


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Hilfe css Menu center xXcyberXx CSS 5 28.11.2010 19:51
Problem mit CSS Menü SMundt CSS 9 07.01.2009 19:12
CSS Navigation - Problem mit IE6 pcklinik CSS 4 18.09.2007 12:04
Darstellungsproblem CSS Navigation im IE7 pcklinik CSS 7 09.09.2007 17:25
CSS Einsteiger bittet um Hilfe pcklinik CSS 0 06.09.2007 14:40


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:19 Uhr.