Gunnar Bittersmann: Effekt gesucht

Beitrag lesen

@@mark:

nuqneH

Auf der von dir verlinkten Seite wird dieser Effekt erreicht, indem der Opacity-Wert im style-Attribut des img-Tags per Javascript auf 0.5 gesetzt wird.

Und das auch noch stufenweise in einer Schleife. Also so, wie man es NICHT machen sollte. https://forum.selfhtml.org/?t=218225&m=1501921 ff.

Mir persönlich gefällt diese Umsetzung jedoch nicht, da sowohl style-Attribut, als auch die CSS-Klasse des img-Tags verändert werden. Das wäre m.M. nicht nötig gewesen.

Es gibt keine „CSS-Klassen“. Und du meinst das „img-Element“.

Ich würde auch nicht bei jeder Auswahl allen Item eine Klasse "active" bzw. "inactive" verpassen, sondern im HTML festlegen, zu welchen Kategorien (Klassen) das jeweilige Item gehört, bspw. <li class="category-1 category-2">1 2</li>.

Ich hab da mal was vorbereitet.

Die UI-Elemente zur Auswahl sind Checkboxen (wenn nur eine Kategie ausgewählt werden soll: Radiobutton) mit Labels. Die Checkboxen (bzw. Radiobuttons) können mit CSS vesteckt werden; dann ist dafür zu sorgen, dass deren Status über das Label visualisiert wird, bspw. :checked + label { background: silver }.

Bei Änderungen der Auswahl wird dem Containerelement eine dieser Kategie entsprechende Klasse hinzugefügt bzw. weggenommen:

controls[i].addEventListener('change', function ()  
{  
	items.classList.toggle(this.id);  
}, false);

Alle nicht zu den jeweilig ausgewählten Kategorien gehörenden Items werden transparent dargestellt:

.select-1 :not(.category-1),  
.select-2 :not(.category-2),  
.select-3 :not(.category-3)  
{  
	opacity: 0.2;  
}

Und wichtig: Der Fade-Effekt ist reines CSS: #items li { transition: opacity 1s ease }

Qapla'

--
„Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)