CSS3 spotlight-Effekt mit einem abgerundeten Rechteck mit einem Gefälle
Ich Schreibe ein interaktives tutorial für eine web-app, die bedeutete, zu markieren die verschiedenen Teile der Benutzeroberfläche. Das tutorial ist gedacht, um die spotlight-ein Teil zu einer Zeit und sagen Sie dem Nutzer, wie Sie mit ihm interagieren. Sie haben wahrscheinlich gesehen etwas ähnliches auf smartphone-apps.
Für spezielle CSS verwendet werden könnten, um spotlight eine vorhandene Schnittstelle, die beste Lösung, die ich gefunden habe, ist mit so etwas wie dieses, das ist nur ein div
auf der vorhandenen Schnittstelle, die es erlaubt Teile hervorgehoben werden:
https://web.archive.org/web/20120414095101/http://svay.com/experiences/css3-spotlight
Jedoch die CSS - radial-gradient
erlaubt nur für Kreise und Ellipsen, die ist seltsam für user-interface-Elemente, die sind in der Regel rechteckig. Gibt es eine Möglichkeit, den gleichen Effekt erzielen, aber mit abgerundeten Rechtecke (Grau dargestellte Bereich ist alles, was außerhalb des Rechtecks)?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vals gab eine ausgezeichnete Antwort, und gab mir einen tollen Tipp, um herauszufinden, eine einfache Möglichkeit, genau das zu bekommen, was ich wollte. Dieser Effekt kann erreicht werden mit einem inset box shadow plus der gewöhnliche, und hat den zusätzlichen Vorteil, dass die spotlight-box müssen nur neu positioniert werden, um markieren Sie einen bestimmten Bereich, anstatt Neuzeichnen einer CSS-Farbverlauf.
Hier der code:
Zur individuellen Anpassung der Parameter, um den Verlauf der Grenze weicher oder mehr dramatisch, und wie viel es steckt in den Vordergrund.
Schauen Sie sich die folgenden:
Können Sie tun, mit Steigungen, aber die Erreichung des abgerundeten Rechtecks wird schwer sein.
Ein einfacher Weg ist nur mit box-shadow
Diese Weise die abgerundeten Ecken sind einfach. Ich habe ein pseudo-element zu machen, mehr elegant; auf diese Weise erhalten Sie 2 Stufen von Transparenz. Sie könnte aufwendig es weiter mit den restlichen pseudo-element, und auch mit einem inset-Schatten.
demo
einen alternativen Ansatz verwenden von Farbverläufen (keine abgerundeten Ecken, aber nicht einen schlechten Einfluss sowieso):
demo2
Dies ist die nicht CSS3-Lösung. Die Lösung verwendet eine 10% ige Transparenz schwarzen hintergrund von png, der Scheinwerfer ist nun als Bild unten.
HTML
JavaScript
CSS
Die spotlight-Bild
Getestet habe ich diese und es funktioniert auf allen modernen und IE7+ desktop-Browser.
Ich haben schreiben Sie eine kleine jQuery-plugin, das erstellen von vier div-Element und legen Sie es um Ihre zone /element.
Selbst wenn es nicht die Antwort, die Sie wollen, nicht niederstimmen es ist eine erste Idee für Ihr futur Skript.
http://jsfiddle.net/DoubleYo/DQ6jj/