


CSS pur pour obtenir un effet réaliste des gouttes de pluie sur les compétences glass_javascript des fenêtres
Voici simplement l'utilisation de la technologie CSS pour démontrer un tel scénario, ce qui n'est peut-être pas très pratique. Cependant, c’est une excellente occasion d’explorer de nouvelles fonctionnalités de CSS. Vous permet d’essayer de nouvelles fonctionnalités et outils. Et petit à petit, cela se pratiquera au travail. Lors de la création de l’effet goutte de pluie de la fenêtre, HAML et Sass seront utilisés.
Effet de cas
En regardant l'effet ci-dessus, est-ce un peu comme se tenir à l'intérieur et regarder la scène nocturne sous la pluie par la fenêtre ? L'effet des gouttes de pluie sur la fenêtre est si réel, mais la scène nocturne à l'extérieur de la fenêtre est si floue ? . Nous ne sommes plus poétiques. Je pense que tout le monde se préoccupe davantage du type de technologie utilisé pour obtenir un tel effet.
Préprocesseur
Dans cet exemple, HAML et Sass sont utilisés à la place des HTML et CSS familiers. La raison principale est que des centaines d'éléments
Pour la syntaxe de HAML et Sass, vous pouvez consulter leurs sites officiels. Si votre ordinateur local ne dispose pas d'un tel environnement de développement, vous pouvez créer une DEMO directement dans Codepen et sélectionner le préprocesseur correspondant. Sélectionnez le préprocesseur correspondant dans la configuration de HTML et CSS. Par exemple, sélectionnez HAML dans les paramètres HTML et sélectionnez SCSS dans les paramètres CSS.
Pour plus de tutoriels chinois sur Sass, vous pouvez cliquer ici pour lire.
Structure
La structure permettant de créer l'effet de gouttes de pluie sur la fenêtre n'est pas trop compliquée. Il est principalement divisé en deux niveaux, l'un est la fenêtre et l'autre les gouttes de pluie. Dans le cas, .window est utilisé pour représenter la fenêtre, et les gouttes de pluie ci-dessus sont placées dans le conteneur .raindrops. Les gouttes de pluie sont créées via .border et .drops. Et placez window.window et raindrops.raindrops dans le conteneur.
En contenant :
.container .window .raindrops .borders - (1..120).each do .border .drops - (1..120).each do .raindrop
Structure compilée :
<div class="container"> <div class="window"></div> <div class="raindrops"> <div class="borders"> <div class="border"></div> <!-- 此处省略 118个border --> <div class="border"></div> </div> <div class="drops"> <div class="raindrop"></div> <!-- 此处省略 118个raindrop --> <div class="raindrop"></div> </div> </div> </div>
Style
Les styles sont divisés en trois niveaux :
Scène nocturne floue à l'extérieur de la fenêtre (cela peut aussi être compris comme l'effet d'une fenêtre)
Effet goutte de pluie
Effet d'animation coulissante goutte de pluie
Ensuite, comprenez brièvement comment ces effets sont obtenus et quelles nouvelles fonctionnalités CSS sont utilisées.
Définir les variables
L'effet entier est écrit en utilisant Sass. Si vous n'avez jamais compris ou été exposé à Sass, il est recommandé d'en avoir d'abord une brève compréhension. Cela vous aidera à comprendre rapidement la production d’effets de cas.
Pour la scène nocturne à l'extérieur de la fenêtre, j'ai trouvé une image des lanternes qui s'allument, et j'ai laissé la fenêtre occuper tout l'écran. Ici, nous déclarons d'abord trois variables :
.$image: "http://www.w3cplus.com/sites/default/files/blogs/2015/1506/huadenchushang.jpg"; $width:100vw; $height:100vh;
De plus, vous devez définir la variable goutte de pluie :
$raindrops:120;
Il est important de noter que la valeur variable de la goutte de pluie doit correspondre au mieux à la structure de la goutte de pluie en HTML.
Faire en sorte que la fenêtre occupe le plein écran
La première chose à faire est de faire en sorte que la fenêtre occupe tout l'écran. En fait, cela signifie faire en sorte que .window s'affiche en plein écran. Quant à savoir comment obtenir l’effet plein écran, ce n’est pas difficile. Je veux que les étudiants qui connaissent un peu CSS soient capables de le faire en quelques minutes. Cependant, la nouvelle méthode CSS3 est utilisée ici, en utilisant l'unité de fenêtre pour obtenir l'effet plein écran :
.container{ position:relative; width:$width; height:$height; overflow:hidden; } .window{ position:absolute; width:$width; height:$height; background:url($image); background-size:cover; background-position:50%; }
utilise deux points de connaissances clés :
Utilisez les unités de fenêtre vw et vh pour rendre le conteneur .container et .window aussi grand que la fenêtre d'affichage. (Pour une introduction détaillée à l'unité Viewport, voici une introduction détaillée)
Utilisez la propriété background-size de CSS3 pour que l'image d'arrière-plan remplisse l'écran.
Effet flou (verre dépoli)
L'effet que nous souhaitons n'est pas aussi simple qu'une image d'arrière-plan en plein écran, mais un effet flou sur l'image. Certains étudiants diront peut-être que l’utilisation d’un logiciel de production pour créer une image floue ne prend que quelques minutes. Si vous utilisez toujours cette méthode pour y faire face, cela signifie que vous êtes déjà éliminé.
Il existe un attribut de filtre dans CSS3, définissez-le sur flou() et l'effet apparaîtra.
.window{ ... filter:blur(10px); }
现实生活中的雨露
在我们继续讨论之前,让我们看看现实生活中雨滴在窗户上的效果:
图片来自:Wikipedia
由于折射,雨滴翻转图像。另外,雨滴形状或多或少有些类似半球体,而且综们看起来有黑色边框。
雨滴
基于我们看到的雨滴效果,让我们来尝试制作一个单独的雨滴效果。
HAML
.container .window .raindrop
SCSS
$drop-width:15px; $drop-stretch:1.1; $drop-height:$drop-width*$drop-stretch; .raindrop{ position:absolute; top:$height/2; left:$width/2; width:$drop-width; height:$drop-height; border-radius:100%; background-image:url($image); background-size:$width*0.05 $height*0.05; transform:rotate(180deg); }
这是很简单的,我做就是使用div.raindrop画了一个椭圆。并且用了当初的背景图进行了填补,并做了一个倒转的效果。
现在,我们要添加一个小边框,让雨滴看起来更像雨点(看起来有立体效果)。
HAML
.container .window .border .raindrop
SCSS
.border{ position:absolute; top:$height/2; left:$width/2; margin-left:2px; margin-top:1px; width:$drop-width - 4; height:$drop-height; border-radius:100%; box-shadow:0 0 0 2px rgba(0,0,0,0.6); }
请注意,我们不只是添加了一个边框,我们还对边框进行了挤压,所以看起来雨滴更自然一些。
雨滴看上去OK了,这个时候我们可以添加数以百计的雨滴:
HAML
.container .window .raindrops .borders - (1..120).each do .border .drops - (1..120).each do .raindrop
我们做了120个雨滴。
接下来使用Sass的循环给每个雨滴写样式:
@for $i from 1 through $raindrops{ $x:random(); $y:random(); $drop-width:5px+random(11); $drop-stretch:0.7+(random()*0.5); $drop-height:$drop-width*$drop-stretch; .raindrop:nth-child(#{$i}){ left:$x * $width; top:$y * $height; width:$drop-width; height:$drop-height; background-position:percentage($x) percentage($y); } .border:nth-child(#{$i}){ left:$x * $width; top:$y * $height; width:$drop-width - 4; height:$drop-height; } }
这里采用了Sass的@for循环对每个雨滴做样式处理,并且使用随机函数random()产生随机值,让每个雨滴的大小,挤压都不一致。同时还使用percentage()函数,让雨滴的背景图采用不同的位置。
上面看到的效果都是静态的,为了让它更具下雨的效果。雨滴滴下的效果,可以使用CSS3的animation来制作动画效果。
@keyframes falling { from { } to { transform: translateY(500px); } }
定义好falling动画之后,只需要在雨滴上调用:
@for $i from 1 through $raindrops{ $x:random(); $y:random(); $drop-width:5px+random(11); $drop-stretch:0.7+(random()*0.5); $drop-delay: (random()*2.5) + 1; $drop-height:$drop-width*$drop-stretch; .raindrop:nth-child(#{$i}){ left:$x * $width; top:$y * $height; width:$drop-width; height:$drop-height; background-position:percentage($x) percentage($y); animation: #{$drop-delay}s falling 0.3s ease-in infinite; } .border:nth-child(#{$i}){ left:$x * $width; top:$y * $height; width:$drop-width - 4; height:$drop-height; animation: #{$drop-delay}s falling 0.3s ease-in infinite; } }
到了这一步,你也就能看到文章开头显示的雨滴窗户的效果了。是不是感觉很爽呀。
总结
文章一步一步演示了如何使用CSS新特性制作一个华灯初上,雨滴窗户的效果。整个实现过程采用了预处理器来编写代码。从整个过程中你可以很明显的感知,如果没有HAML和Sass这样的预处理器,你要为数以百计的雨滴写样式效果,那绝对是一件非常苦逼的事情。而使用之后,采用他们的功能特性,配合CSS3的一些新特性就能很轻松的完成。
浏览这个效果建议您使用Chrome浏览器浏览,因为这里使用了CSS3一些新特性,大家应该都懂的。千万别问我IE6浏览器怎么破,我也破不了。
纯css实现窗户玻璃雨滴逼真效果,内容到此为止,希望大家喜欢。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'article discute de la création, de la publication et du maintien des bibliothèques JavaScript, en se concentrant sur la planification, le développement, les tests, la documentation et les stratégies de promotion.

L'article traite des stratégies pour optimiser les performances JavaScript dans les navigateurs, en nous concentrant sur la réduction du temps d'exécution et la minimisation de l'impact sur la vitesse de chargement de la page.

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

L'article traite du débogage efficace de JavaScript à l'aide d'outils de développeur de navigateur, de se concentrer sur la définition des points d'arrêt, de l'utilisation de la console et d'analyser les performances.

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

L'article explique comment utiliser les cartes source pour déboguer JavaScript minifiée en le mappant au code d'origine. Il discute de l'activation des cartes source, de la définition de points d'arrêt et de l'utilisation d'outils comme Chrome Devtools et WebPack.

Ce tutoriel expliquera comment créer des graphiques à tarte, anneaux et bulles à l'aide de chart.js. Auparavant, nous avons appris quatre types de graphiques de graphique. Créer des graphiques à tarte et à anneaux Les graphiques à tarte et les graphiques d'anneaux sont idéaux pour montrer les proportions d'un tout divisé en différentes parties. Par exemple, un graphique à secteurs peut être utilisé pour montrer le pourcentage de lions mâles, de lions féminins et de jeunes lions dans un safari, ou le pourcentage de votes que différents candidats reçoivent lors des élections. Les graphiques à tarte ne conviennent que pour comparer des paramètres ou des ensembles de données uniques. Il convient de noter que le graphique à tarte ne peut pas dessiner des entités avec une valeur nulle car l'angle du ventilateur dans le graphique à tarte dépend de la taille numérique du point de données. Cela signifie toute entité avec une proportion nulle

Une fois que vous avez maîtrisé le didacticiel TypeScript de niveau d'entrée, vous devriez être en mesure d'écrire votre propre code dans un IDE qui prend en charge TypeScript et de le compiler en JavaScript. Ce tutoriel plongera dans divers types de données dans TypeScript. JavaScript a sept types de données: null, non défini, booléen, numéro, chaîne, symbole (introduit par ES6) et objet. TypeScript définit plus de types sur cette base, et ce tutoriel les couvrira tous en détail. Type de données nuls Comme javascript, null en typeScript
