Heim > Web-Frontend > Front-End-Fragen und Antworten > Bringen Sie Ihnen bei, wie Sie mit CSS in zehn Minuten Raucheffekte erzielen

Bringen Sie Ihnen bei, wie Sie mit CSS in zehn Minuten Raucheffekte erzielen

WBOY
Freigeben: 2022-01-14 18:08:25
nach vorne
3205 Leute haben es durchsucht

In diesem Artikel erfahren Sie, wie Sie mit CSS den Raucheffekt erzielen. Ich hoffe, dass er für alle hilfreich ist.

Bringen Sie Ihnen bei, wie Sie mit CSS in zehn Minuten Raucheffekte erzielen

Schauen Sie sich den Raucheffekt genau an. Es gibt zwei wichtige Merkmale:

  • Körniges Gefühl

  • Wenn Sie an Unschärfe denken, werden Sie zuerst darauf achten Denken Sie an die Verwendung von Filter: Blur().

  • Natürlich stimmt das, aber in CSS können wir neben Filtern auch andere Methoden verwenden, um Unschärfeeffekte zu simulieren.

Reines CSS zur Implementierung einer Rauchanimation

Sehen wir uns zunächst diesen Effekt an:

Angenommen, wir haben einen solchen Charakter:

<span>C</span>
Nach dem Login kopieren
Bringen Sie Ihnen bei, wie Sie mit CSS in zehn Minuten Raucheffekte erzielenWir ändern einfach Textschatten + Deckkraft. Kann den Effekt simulieren Rauch:

span {
  text-shadow: 0 0 0 whitesmoke;
  animation: smoky 5s;
}
@keyframes smoky {
  to {
    text-shadow: 0 0 20px whitesmoke;
    opacity: 0;
  }
}
Nach dem Login kopieren

Auf der Grundlage des oben Gesagten können wir Verschiebung, Drehung und Skalierung hinzufügen, den obigen Code leicht modifizieren und einige Transformationen hinzufügen Bei der Verwandlung fühlt es sich an, als würde ein Wort weggeblasen und in Rauch verwandelt. Auf dieser Basis müssen wir nur mehrere Wörter zusammenfügen und mithilfe der Animationsverzögerung jedes Wort nacheinander steuern, um den Animationseffekt auszulösen und den oben erwähnten vollständigen Raucheffekt zu erzielen.

Der Pseudocode lautet wie folgt:

span {
  text-shadow: 0 0 0 whitesmoke;
  animation: smoky 5s;
}
@keyframes smoky {
  to {
    transform:
      translate3d(200px, -80px, 0)
      rotate(-40deg)
      skewX(70deg)
      scale(1.5);
    text-shadow: 0 0 20px whitesmoke;
    opacity: 0;
  }
}
Nach dem Login kopieren
<span>C</span> S S // ...
Nach dem Login kopieren

Verwenden Sie den SVG-Feturbulenzfilter, um den Raucheffekt zu erzielen

Bringen Sie Ihnen bei, wie Sie mit CSS in zehn Minuten Raucheffekte erzielen

Der Rauch der obigen Rauchanimation ist noch relativ grob. Vor allem, weil es etwas an Körnigkeit fehlt? Ein Teil der Rauchtextur fehlt.

Um einen raffinierteren Raucheffekt zu erzielen, müssen wir den Filter verwenden.

Angenommen, es gibt mehrere Wörter wie dieses:

// ... 上述所有 CSS 代码
@for $item from 1 through 21 {
  span:nth-of-type(#{$item}){ 
    animation-delay: #{(($item/10))}s; 
  }
}
Nach dem Login kopieren
Einfaches CSS:
<div">SMOKE</div>
Nach dem Login kopieren
Wir erhalten diese Wörter mit Verlaufsfarben:

Wir verwenden den -Filter, um es einfach zu verarbeiten:

div {
    background: linear-gradient(#fff, #999, #ddd, #888);
    background-clip: text;
}
Nach dem Login kopieren

Verwenden Sie filter: url(), um diesen Filter in CSS einzuführen. Für eine bessere Wirkung habe ich diesen Filter direkt auf eingeführt:

<div>SMOKE</div>
<svg width="0">
  <filter id="filter">
    <feTurbulence id="turbulence" type="fractalNoise" baseFrequency=".03" numOctaves="20" />
    <feDisplacementMap in="SourceGraphic" scale="30" />
  </filter>
</svg>
Nach dem Login kopieren

Unsere Schriftart ist Der Filter vermittelt ein flüssiges Gefühl:

Man kann sagen, dass dieser Effekt im Grunde nichts mit dem Raucheffekt zu tun hat, aber fügen Sie einfach einen Unschärfefilter hinzu, und etwas Magisches passiert:

body {
    filter: url(&#39;#filter&#39;);
}
div {
    background: linear-gradient(#fff, #999, #ddd, #888);
    background-clip: text;
}
Nach dem Login kopieren
Bringen Sie Ihnen bei, wie Sie mit CSS in zehn Minuten Raucheffekte erzielenDer gesamte Effekt tritt sofort ein. Der Rauch ist viel geworden:

Okay, fügen Sie einen Schleifenanimationseffekt hinzu und verwenden Sie einfach JavaScript, um ihn zu verarbeiten:

body {
    filter: url(&#39;#filter&#39;);
}
div {
    background: linear-gradient(#fff, #999, #ddd, #888);
    background-clip: text;
    filter: blur(5px);
}
Nach dem Login kopieren

Sehen Sie sich den Effekt an:

Bringen Sie Ihnen bei, wie Sie mit CSS in zehn Minuten Raucheffekte erzielen

Natürlich können die oben genannten Effekte gesteuert werden durch:

' s baseFrequency-Eigenschaftsanpassung

Bringen Sie Ihnen bei, wie Sie mit CSS in zehn Minuten Raucheffekte erzielencontrolss numOctaves-Eigenschaftsanpassung

controlss Scale-Eigenschaftsanpassung

Änderts numOctaves-Eigenschaft von 30 auf 70, was grundsätzlich unsichtbar ist, wenn der Umriss von Ist der Text erreicht, wird der gesamte Text atomisiert. Wir können einen Hover-Effekt wie diesen erstellen:

Bringen Sie Ihnen bei, wie Sie mit CSS in zehn Minuten Raucheffekte erzielen

Für den vollständigen Code oben können Sie hier klicken: CodePen CSS + SVG Text Smoke Hover-Effekt

Auf diese Weise basierend auf Filter: Blur() mit -Filter. Basierend auf der obigen Demonstration können wir auch viele interessante Effekte erkunden, auf die ich in diesem Artikel nicht näher eingehen werde Tutorial

)

Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen bei, wie Sie mit CSS in zehn Minuten Raucheffekte erzielen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
css
Quelle:juejin.im
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage