


Reines CSS, um einen realistischen Effekt von Regentropfen auf Fensterglas-Javascript-Fähigkeiten zu erzielen
Hier wird nur die CSS-Technologie verwendet, um ein solches Szenario zu demonstrieren, das möglicherweise nicht sehr praktisch ist. Dies ist jedoch eine großartige Gelegenheit, neue Funktionen von CSS zu erkunden. Ermöglicht Ihnen, neue Funktionen und Tools auszuprobieren. Und nach und nach wird es am Arbeitsplatz geübt. Bei der Erstellung des Fenster-Regentropfeneffekts werden HAML und Sass verwendet.
Falleffekt
Wenn man sich den obigen Effekt ansieht, ist es ein bisschen so, als würde man drinnen stehen und die Nachtszene im Regen vor dem Fenster betrachten? Die Wirkung von Regentropfen auf dem Fenster ist so real, aber die Nachtszene vor dem Fenster ist so verschwommen . Wir sind nicht mehr poetisch. Ich denke, jeder ist mehr besorgt darüber, welche Art von Technologie verwendet wird, um einen solchen Effekt zu erzielen.
Präprozessor
In diesem Beispiel werden HAML und Sass anstelle des bekannten HTML und CSS verwendet. Der Hauptgrund ist, dass Hunderte von
Informationen zur Syntax von HAML und Sass finden Sie auf deren offiziellen Websites. Sollte Ihr lokaler Rechner nicht über eine solche Entwicklungsumgebung verfügen, können Sie direkt in Codepen eine DEMO erstellen und den entsprechenden Präprozessor auswählen. Wählen Sie in der Konfiguration von HTML und CSS den entsprechenden Präprozessor aus. Wählen Sie beispielsweise HAML in den HTML-Einstellungen und SCSS in den CSS-Einstellungen aus.
Weitere chinesische Tutorials zu Sass finden Sie hier, um sie zu lesen.
Struktur
Die Struktur zur Erzeugung des Regentropfeneffekts auf dem Fenster ist nicht allzu kompliziert. Es ist hauptsächlich in zwei Ebenen unterteilt, eine ist das Fenster und die andere ist die Regentropfen. In diesem Fall wird .window zur Darstellung des Fensters verwendet und die oben genannten Regentropfen werden im .raindrops-Container platziert. Die Regentropfen werden über .border und .drops erzeugt. Und legen Sie sowohl window.window als auch raindrops.raindrops in den Behälter.
Im Container:
.container .window .raindrops .borders - (1..120).each do .border .drops - (1..120).each do .raindrop
Kompilierte Struktur:
<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>
Stil
Stile sind in drei Ebenen unterteilt:
Verschwommene Nachtszene außerhalb des Fensters (kann auch als Fenstereffekt verstanden werden)
Regentropfeneffekt
Regentropfen-Gleitanimationseffekt
Als Nächstes verstehen Sie kurz, wie diese Effekte erzielt werden und welche neuen CSS-Funktionen verwendet werden.
Variablen festlegen
Der gesamte Effekt wurde mit Sass geschrieben. Wenn Sie Sass noch nie verstanden haben oder damit in Kontakt gekommen sind, wird empfohlen, dass Sie sich zunächst kurz damit vertraut machen. Dies wird Ihnen helfen, die Entstehung von Falleffekten schnell zu verstehen.
Für die Nachtszene außerhalb des Fensters habe ich ein Bild der aufleuchtenden Laternen gefunden und das Fenster den gesamten Bildschirm einnehmen lassen. Hier deklarieren wir zunächst drei Variablen:
$image: "http://www.w3cplus.com/sites/default/files/blogs/2015/1506/huadenchushang.jpg"; $width:100vw; $height:100vh;
Zusätzlich müssen Sie die Variable „Regentropfen“ festlegen:
$raindrops:120;
Es ist wichtig zu beachten, dass der Variablenwert des Regentropfens am besten mit der Regentropfenstruktur in HTML übereinstimmen sollte.
Stellen Sie sicher, dass das Fenster den gesamten Bildschirm einnimmt
Als Erstes muss das Fenster den gesamten Bildschirm einnehmen. Tatsächlich bedeutet es, dass .window im Vollbildmodus angezeigt wird. Es ist nicht schwierig, den Vollbildeffekt zu erzielen. Ich möchte, dass Studierende, die sich mit CSS auskennen, es in wenigen Minuten erledigen können. Allerdings wird hier die neue Methode von CSS3 verwendet, die die Viewport-Einheit verwendet, um den Vollbildeffekt zu erzielen:
.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%; }
verwendet zwei wichtige Wissenspunkte:
Verwenden Sie die Viewport-Einheiten vw und vh, um die Container .container und .window so groß wie das Viewport-Fenster zu machen. (Eine ausführliche Einführung in die Viewport-Einheit finden Sie hier)
Verwenden Sie die Eigenschaft „background-size“ von CSS3, damit das Hintergrundbild den Bildschirm ausfüllt.
Unschärfeeffekt (Milchglas)
Der gewünschte Effekt ist nicht nur ein einfaches Hintergrundbild im Vollbildmodus, sondern ein Unschärfeeffekt auf dem Bild. Einige Studenten sagen vielleicht, dass die Verwendung einer Produktionssoftware zum Erstellen eines unscharfen Rückbilds nur wenige Minuten dauert. Wenn Sie immer noch diese Methode verwenden, um damit umzugehen, bedeutet das, dass Sie bereits draußen sind.
Es gibt ein Filterattribut in CSS3. Setzen Sie es auf „blur()“ und der Effekt wird angezeigt.
.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实现窗户玻璃雨滴逼真效果,内容到此为止,希望大家喜欢。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



In Artikel werden JavaScript -Bibliotheken erstellt, veröffentlicht und aufrechterhalten und konzentriert sich auf Planung, Entwicklung, Testen, Dokumentation und Werbestrategien.

In dem Artikel werden Strategien zur Optimierung der JavaScript -Leistung in Browsern erörtert, wobei der Schwerpunkt auf die Reduzierung der Ausführungszeit und die Minimierung der Auswirkungen auf die Lastgeschwindigkeit der Seite wird.

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

In dem Artikel werden effektives JavaScript -Debuggen mithilfe von Browser -Entwickler -Tools, der Schwerpunkt auf dem Festlegen von Haltepunkten, der Konsole und der Analyse der Leistung erörtert.

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

In dem Artikel wird erläutert, wie Quellkarten zum Debuggen von JavaScript verwendet werden, indem er auf den ursprünglichen Code zurückgegeben wird. Es wird erläutert, dass Quellenkarten aktiviert, Breakpoints eingestellt und Tools wie Chrome Devtools und WebPack verwendet werden.

In diesem Tutorial wird erläutert, wie man mit Diagramm.js Kuchen-, Ring- und Bubble -Diagramme erstellt. Zuvor haben wir vier Chart -Arten von Charts gelernt. Erstellen Sie Kuchen- und Ringdiagramme Kreisdiagramme und Ringdiagramme sind ideal, um die Proportionen eines Ganzen anzuzeigen, das in verschiedene Teile unterteilt ist. Zum Beispiel kann ein Kreisdiagramm verwendet werden, um den Prozentsatz der männlichen Löwen, weiblichen Löwen und jungen Löwen in einer Safari oder den Prozentsatz der Stimmen zu zeigen, die verschiedene Kandidaten bei der Wahl erhalten. Kreisdiagramme eignen sich nur zum Vergleich einzelner Parameter oder Datensätze. Es ist zu beachten, dass das Kreisdiagramm keine Entitäten ohne Wert zeichnen kann, da der Winkel des Lüfters im Kreisdiagramm von der numerischen Größe des Datenpunkts abhängt. Dies bedeutet jede Entität ohne Anteil

Sobald Sie das Typscript-Tutorial für Einstiegsklasse gemeistert haben, sollten Sie in der Lage sein, Ihren eigenen Code in eine IDE zu schreiben, die TypeScript unterstützt und in JavaScript zusammenfasst. Dieses Tutorial wird in verschiedenen Datentypen in TypeScript eingetaucht. JavaScript hat sieben Datentypen: NULL, UNDEFINED, BOOLEAN, NUMMER, STRING, SYMBOL (durch ES6 eingeführt) und Objekt. TypeScript definiert mehr Typen auf dieser Grundlage, und dieses Tutorial wird alle ausführlich behandelt. Null -Datentyp Wie JavaScript, null in TypeScript
