Ich versuche, einen Fadeout-Effekt zu erstellen, bei dem die letzten 5 oder 6 Zeichen in einer Titelleiste allmählich transparenter werden, wenn sie sich dem Rand ihres Containers nähern.
Ich kann mich nicht auf die Zeichenanzahl stützen, da die Seite responsiv ist und beliebige Breiten haben könnte. Ich kann auch nicht einfach einen Verlauf darüber legen, weil bereits ein Verlauf im Hintergrund vorhanden ist, was dies offensichtlich machen würde, es sei denn, ich kann meinen CSS-Verlauf von transparent zu einer Farbe machen, was ich nicht glaube möglich ist.
Meine Hoffnung ist, dass ich irgendwie die Zeichen auswählen kann, die dem Abschneidepunkt am nächsten liegen (bevor sie durch overflow:hidden am übergeordneten Element versteckt werden), wie folgt:
Ich habe versucht, dies über den ":last" -Selektor zu machen, kann aber nur auf Tags abzielen:
$('#scalable:visible:last').css('opacity','.5');
Hier ist mein erster Versuch dazu in einem jsfiddle: http://jsfiddle.net/adamnelson/PgerN/
Die Lösung war purer CSS:
#scalierbar {
Hintergrundfarbe: #408800; /* Alte Browser */
Hintergrundfarbe: -webkit-gradient(linear, 0 0, 0 100%, von(#408800), zu(#316600));
Hintergrundfarbe: -webkit-linearer Verlauf(#408800 0%, #316600 100%);
Hintergrundfarbe: -moz-linearer Verlauf(#408800 0%, #316600 100%);
Hintergrundfarbe: -o-linearer Verlauf(#408800 0%, #316600 100%);
Hintergrundfarbe: linearer Verlauf(#408800 0%, #316600 100%); /* FF3.6+ */ /* Chrome,Safari4+ */ /* Chrome10+,Safari5.1+ */ /* Opera 11.10+ */ /* IE10+ */ /* W3C */
Filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#408800', endColorstr='#316600',GradientType=0 ); /* IE6-9 */
Farbe: weiß;
Schriftgröße: 20px;
Schriftstärke: fett;
Rand: 50px auto 0;
Polsterung: 1em;
Overflow: versteckt;
Breite: 80%;
Position: relativ;
}
#scalierbar:after {
Inhalt: " ";
Position: absolut;
Höhe: 100%;
Breite: 140px;
Oben: 0;
Recht: 0;
Hintergrundfarbe: -moz-linearer Verlauf(links, rgba(49,102,0,0) 0%, rgba(49,102,0,0.56) 51%, rgba(49,102,0,1) 100%);
Hintergrundfarbe: -webkit-gradient(linear, links oben, rechts oben, Farbstop(0%,rgba(49,102,0,0)), Farbstop(51%,rgba(49,102,0,0.56)), Farbstop(100%,rgba(49,102,0,1)));
Hintergrundfarbe: -webkit-linearer Verlauf(links, rgba(49,102,0,0) 0%,rgba(49,102,0,0.56) 51%,rgba(49,102,0,1) 100%);
Hintergrundfarbe: -o-linearer Verlauf(links, rgba(49,102,0,0) 0%,rgba(49,102,0,0.56) 51%,rgba(49,102,0,1) 100%);
Hintergrundfarbe: -ms-linearer Verlauf(links, rgba(49,102,0,0) 0%,rgba(49,102,0,0.56) 51%,rgba(49,102,0,1) 100%);
Hintergrundfarbe: linearer Verlauf(rechts, rgba(49,102,0,0) 0%,rgba(49,102,0,0.56) 51%,rgba(49,102,0,1) 100%);
Filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00408800', endColorstr='#408800',GradientType=1 );
}
Dokumentiert in diesem Fiddle: http://jsfiddle.net/PgerN/2/