Es scheint, dass Apples Overlay mehr als nur eine Transparenz ist. Irgendwelche Ideen, wie dieser Effekt mit CSS und möglicherweise JS erzielt werden kann?
javascript
css
user-interface
blur
Klumpig
quelle
quelle
Antworten:
Mit CSS3 ist Folgendes möglich:
Beispiel hier => jsfiddle
quelle
-moz-filter: blur()
. Stattdessen müssen Sie einen SVG-Filter verwenden. Weitere Informationen finden Sie in meiner Antwort.Du hast mich dazu gebracht, es zu versuchen, also habe ich mir das Beispiel hier angesehen:
http://codepen.io/Edo_B/pen/cLbrt
Verwenden von:
das ist es.
Ich glaube auch, dass dies für jeden Bildschirm dynamisch durchgeführt werden kann, wenn Leinwand verwendet wird, um den aktuellen Dom zu kopieren und ihn zu verwischen.
quelle
[Bearbeiten] In Zukunft wird es
-webkit-backdrop-filter
für (mobile) Safari 9 genau das geben. Sehen Sie diesen Stift, den ich gemacht habe, um ihn zu präsentieren.Ich habe in den letzten 4 Wochen darüber nachgedacht und mir diese Lösung ausgedacht.
Live-Demo
[Bearbeiten] Ich habe einen ausführlicheren Beitrag über CSS-Tricks geschrieben
Bei dieser Technik werden CSS-Regionen verwendet, sodass die Browserunterstützung derzeit nicht die beste ist. ( http://caniuse.com/#feat=css-regions )
Der Hauptteil dieser Technik besteht darin, Inhalte mithilfe der CSS-Region vom Layout zu trennen. Definieren Sie zuerst ein
.content
Element mitflow-into:content
und verwenden Sie dann die entsprechende Struktur, um die Kopfzeile zu verwischen.Die Layoutstruktur:
Die beiden wichtigen Teile dieses Layouts sind
.header__background
und.phone__content
- dies sind die Container, in denen der Inhalt fließen soll.Mit CSS-Regionen ist es einfach wie
flow-from:content
(.content
fließt in die benannte Regioncontent
)Jetzt kommt der schwierige Teil. Wir möchten den Inhalt immer durch das fließen lassen,
.header__background
da dies der Abschnitt ist, in dem der Inhalt verwischt wird. (mitwebkit-filter:blur(10px);
)Dies geschieht durch
transfrom:translateY(-$HeightOfTheHeader)
die,.content
um sicherzustellen, dass der Inhalt immer durch die fließt.header__background
. Diese Transformation verbirgt dabei immer Inhalte unter der Kopfzeile. Dies zu beheben ist einfach hinzuzufügenfür die Transformation unterzubringen.
Dies funktioniert derzeit in:
quelle
Dies ist jetzt mit FireFox dank des Attributs element style möglich.
Mit diesem experimentellen Attribut können Sie jeden HTML-Inhalt als Hintergrundbild verwenden. Um den Hintergrund zu erstellen, benötigen Sie drei Überlagerungen:
-moz-element
Hintergrund, der den Inhalt festlegt. Beachten Sie, dass FX dasfilter: blur()
Attribut nicht unterstützt , daher benötigen wir eine SVG.Also zusammen:
SVG-Unschärfefilter (funktioniert in FX, andere Browser könnten ihn verwenden
filter:blur()
):CSS-Unschärfestil:
Endlich 3 Schichten:
Um dies zu verschieben, legen Sie einfach Folgendes fest
background-position
(Beispiel in jQuery, aber Sie können alles verwenden):Hier ist es als JS Fiddle, nur FX.
quelle
Schauen Sie sich diese Demoseite an.
Diese Demo verwendet html2canvas zum Rendern von Dokumenten als Bild.
http://blurpopup.labs.daum.net/
quelle
Dieser Stift, den ich neulich gefunden habe, schien es wunderbar zu machen, nur ein bisschen CSS und 21 Zeilen Javascript. Ich hatte erst von dem Befehl cloneNode js gehört, als ich ihn gefunden hatte, aber er funktionierte genau für das, was ich sicher brauchte.
http://codepen.io/rikschennink/pen/zvcgx
Detail: A. Grundsätzlich wird Ihr Inhalts-Div betrachtet und ein cloneNode darauf aufgerufen, sodass ein Duplikat erstellt wird, das dann im Überlauf platziert wird: verstecktes Header-Objekt, das oben auf der Seite sitzt. B. Dann hört es einfach auf das Scrollen, so dass beide Bilder übereinstimmen und das Header-Bild verwischen ... annnnd BAM. Wirkung erzielt.
In CSS nicht wirklich vollständig machbar, bis sie ein bisschen Skriptfähigkeit in die Sprache eingebaut haben.
quelle
Beispiel ist hier:
http://versie1.com/TEST/ios7/
quelle
habe gestern eine kurze Demo gemacht, die genau das macht, worüber du sprichst. http://bit.ly/10clOM9 Diese Demo führt die Parallaxe basierend auf dem Beschleunigungsmesser aus, sodass sie am besten auf einem iPhone selbst funktioniert. Ich kopiere den Inhalt, den wir überlagern, einfach in ein Element mit fester Position, das unscharf wird.
Hinweis: Wischen Sie nach oben, um das Bedienfeld anzuzeigen.
(Ich habe schreckliche CSS-IDs verwendet, aber Sie haben die Idee)
quelle
Ich bin mir da nicht ganz sicher, ich glaube, dass CSS dies im Moment nicht kann
Chris Coyier hat jedoch über eine alte Technik mit mehreren Bildern gebloggt, um einen solchen Effekt zu erzielen: http://css-tricks.com/blurry-background-effect/
quelle
Schauen Sie sich dieses an http://codepen.io/GianlucaGuarini/pen/Hzrhf Scheint, als würde es den Effekt erzielen, ohne das Hintergrundbild des Elements unter sich zu duplizieren. Siehe Texte verschwimmen auch im Beispiel.
Vague.js
quelle
Gute Nachrichten
Ab dem heutigen 11. April 2020 ist dies mit der
backdrop-filter
CSS-Eigenschaft, die jetzt eine stabile Funktion in Chrome, Safari & Edge ist, problemlos möglich .Ich wollte dies in unserer Hybrid-App für Mobilgeräte, die auch in Android / Chrome Webview und Safari WebView verfügbar ist.
Codebeispiel:
Fügen Sie einfach die CSS-Eigenschaft hinzu:
UI-Beispiel 1
Sehen Sie, wie es in diesem Stift funktioniert, oder probieren Sie die Demo aus:
UI-Beispiel 2
Nehmen wir ein Beispiel für die McDonald's-App, weil sie ziemlich farbenfroh ist. Ich habe den Screenshot gemacht und als Hintergrund in
body
meine App eingefügt .Ich wollte einen Text darüber mit dem Glanzeffekt zeigen. Mit
backdrop-filter: blur(20px);
dem Overlay darüber konnte ich Folgendes sehen: 😍quelle
backdrop-filter
funktioniert in Firefox jedoch nicht automatisch. Ich bezweifle, dass Benutzer die Optionen zumbackdrop-filter
absichtlichen Aktivieren aktivieren , um diesen Effekt zu sehen.Ich habe SVG-Filter verwendet, um ähnliche Effekte für Sprites zu erzielen
<feGaussianBlur stdDeviation="10"/>
z. B. das Beispiel von Keith .<image ...>
Tag, um es auf ein Bild anzuwenden, oder verwenden Sie sogar mehrere Bilder.quelle
Das könnte dir helfen !!
Dies ändert dynamisch den Hintergrund, den nur IOS hat
quelle
Hier ist meine Einstellung dazu mit jQuery. Die Lösung ist nicht universell, was bedeutet, dass man einige der Positionen und Dinge abhängig vom tatsächlichen Design anpassen müsste.
Grundsätzlich habe ich Folgendes getan: Beim Auslösen klonen / entfernen Sie den gesamten Hintergrund (was unscharf sein sollte) in einen Container mit unscharfem Inhalt (der optional einen versteckten Überlauf aufweist, wenn er nicht die volle Breite hat) und positionieren Sie ihn korrekt. Vorsichtsmaßnahme ist, dass bei der Größenänderung von Fenstern unscharfe Divs in Bezug auf die Position nicht mit dem Original übereinstimmen, dies könnte jedoch mit einigen Funktionen zur Größenänderung von Fenstern behoben werden (ehrlich gesagt könnte mich das jetzt nicht stören).
Ich würde mich sehr über Ihre Meinung zu dieser Lösung freuen!
Vielen Dank
Hier ist die Geige , nicht im IE getestet.
HTML
CSS
jQuery
quelle