Il semble que la superposition d'Apple est plus qu'une simple transparence. Des idées sur la façon d'obtenir cet effet avec CSS et éventuellement JS?
javascript
css
user-interface
blur
Grumeleux
la source
la source
Réponses:
C'est possible avec CSS3:
Exemple ici => jsfiddle
la source
-moz-filter: blur()
. Au lieu de cela, vous devez utiliser un filtre SVG, voir ma réponse pour plus de détails.Vous m'avez donné envie d'essayer, alors je l'ai fait, regardez l'exemple ici:
http://codepen.io/Edo_B/pen/cLbrt
En utilisant:
c'est tout.
Je pense également que cela pourrait être fait de manière dynamique pour n'importe quel écran si vous utilisez une toile pour copier le dom actuel et le brouiller.
la source
[Modifier] Dans le futur (mobile) Safari 9, il y aura
-webkit-backdrop-filter
exactement cela. Voir ça stylo que j'ai créé pour le mettre en valeur.J'ai pensé à cela pendant les 4 dernières semaines et j'ai trouvé cette solution.
Démo en direct
[Edit] J'ai écrit un article plus détaillé sur CSS-Tricks
Cette technique utilise des régions CSS, donc la prise en charge du navigateur n'est pas la meilleure pour le moment. ( http://caniuse.com/#feat=css-regions )
L'élément clé de cette technique consiste à séparer le contenu de la mise en page à l'aide de la région CSS. Définissez d'abord un
.content
élément avecflow-into:content
, puis utilisez la structure appropriée pour brouiller l'en-tête.La structure de mise en page:
Les deux parties importantes de cette mise en page sont
.header__background
et.phone__content
- ce sont les conteneurs dans lesquels le contenu doit circuler.En utilisant les régions CSS, c'est simple car
flow-from:content
(.content
coule dans la région nomméecontent
)Maintenant vient la partie délicate. Nous voulons toujours faire passer le contenu à travers le
.header__background
car c'est la section où le contenu sera estompé. (en utilisantwebkit-filter:blur(10px);
)Ceci est fait par
transfrom:translateY(-$HeightOfTheHeader)
le.content
pour garantir que le contenu circulera toujours à travers le.header__background
. Cette transformation cache toujours du contenu sous l'en-tête. Résoudre ce problème est facile à ajouterpour s'adapter à la transformation.
Cela fonctionne actuellement dans:
la source
C'est en quelque sorte possible avec FireFox maintenant grâce à l' attribut de style d' élément .
Cet attribut expérimental vous permet d'utiliser n'importe quel contenu HTML comme image d'arrière-plan. Donc, pour créer l'arrière-plan, vous avez besoin de trois superpositions:
-moz-element
arrière-plan qui définit le contenu. Notez que FX ne prend pas en charge l'filter: blur()
attribut, nous avons donc besoin d'un SVG.Alors, rassemblez:
Filtre de flou SVG (fonctionne dans FX, d'autres navigateurs pourraient utiliser
filter:blur()
):Style de flou CSS:
Enfin 3 couches:
Ensuite, pour déplacer cela, définissez simplement le
background-position
(exemple dans jQuery mais vous pouvez utiliser n'importe quoi):Ici, c'est comme un JS Fiddle, FX uniquement.
la source
Consultez cette page de démonstration.
Cette démo utilise html2canvas pour rendre le document sous forme d'image.
http://blurpopup.labs.daum.net/
la source
Ce stylo que j'ai trouvé l'autre jour semblait le faire à merveille, juste un peu de css et 21 lignes de javascript. Je n'avais pas entendu parler de la commande cloneNode js jusqu'à ce que je trouve cela, mais cela a totalement fonctionné pour ce dont j'avais besoin à coup sûr.
http://codepen.io/rikschennink/pen/zvcgx
Détail: A. Fondamentalement, il regarde votre div de contenu et invoque un cloneNode dessus afin de créer un doublon qu'il place ensuite à l'intérieur du débordement: objet d'en-tête caché assis en haut de la page. B. Ensuite, il écoute simplement le défilement afin que les deux images semblent correspondre et brouille l'image d'en-tête ... annnnd BAM. Effet obtenu.
Pas vraiment entièrement faisable en CSS jusqu'à ce qu'ils aient le petit peu de scriptabilité intégré dans le langage.
la source
L'exemple est ici:
http://versie1.com/TEST/ios7/
la source
a fait une démo rapide hier qui fait ce dont vous parlez. http://bit.ly/10clOM9 cette démo fait la parallaxe basée sur l'accéléromètre afin qu'elle fonctionne mieux sur un iPhone lui-même. Je copie simplement le contenu que nous superposons dans un élément de position fixe qui devient flou.
Remarque: faites glisser votre doigt vers le haut pour voir le panneau.
(j'ai utilisé d'horribles identifiants css mais vous voyez l'idée)
la source
Je ne suis pas très sûr de cela, je pense que CSS n'est pas capable de le faire pour le moment
Cependant Chris Coyier a blogué sur une ancienne technique avec plusieurs images pour obtenir un tel effet, http://css-tricks.com/blurry-background-effect/
la source
Vérifiez celui-ci sur http://codepen.io/GianlucaGuarini/pen/Hzrhf On dirait qu'il fait l'effet sans dupliquer l'image de fond de l'élément sous lui-même. Voir les textes sont flous également dans l'exemple.
Vague.js
la source
Bonnes nouvelles
À partir d'aujourd'hui, le 11 avril 2020 , cela est facilement possible avec la
backdrop-filter
propriété CSS qui est maintenant une fonctionnalité stable dans Chrome, Safari et Edge.Je voulais cela dans notre application mobile hybride donc également disponible dans Android / Chrome Webview et Safari WebView.
Exemple de code:
Ajoutez simplement la propriété CSS:
Exemple d'interface utilisateur 1
Voyez-le fonctionner dans ce stylo ou essayez la démo:
Exemple d'interface utilisateur 2
Prenons un exemple de l'application McDonald's car elle est assez colorée. J'ai pris sa capture d'écran et ajouté comme arrière-plan dans le
body
de mon application.Je voulais montrer un texte par-dessus avec l'effet brillant. En utilisant
backdrop-filter: blur(20px);
la superposition au-dessus, j'ai pu voir ceci: 😍la source
backdrop-filter
ne fonctionne toujours pas automatiquement dans Firefox. Je doute que les utilisateurs activent les options pour activerbackdrop-filter
délibérément juste pour voir cet effet.J'utilise des filtres svg pour obtenir des effets similaires pour les sprites
<feGaussianBlur stdDeviation="10"/>
exemple de Keith .<image ...>
balise pour l'appliquer à n'importe quelle image ou même utiliser plusieurs images.la source
Cela pourrait vous aider !!
Cela change dynamiquement l'arrière-plan que IOS fait
la source
Voici mon point de vue à ce sujet avec jQuery. La solution n'est pas universelle, ce qui signifie qu'il faudrait modifier certaines positions et certains éléments en fonction de la conception réelle.
Fondamentalement, ce que j'ai fait est: lors du déclenchement, clonez / supprimez tout l'arrière-plan (ce qui devrait être flou) dans un conteneur avec un contenu non flou (qui, éventuellement, a un débordement caché s'il n'est pas pleine largeur) et positionnez-le correctement. La mise en garde est que lors du redimensionnement de la fenêtre, le div flou ne correspondra pas à l'original en termes de position, mais cela pourrait être résolu avec une fonction de redimensionnement de la fenêtre (honnêtement, cela ne me dérangeait pas maintenant).
J'apprécierais vraiment votre avis sur cette solution!
Merci
Voici le violon , non testé dans IE.
HTML
CSS
jQuery
la source