Apprenez à utiliser les CSS pour obtenir des effets de fumée en dix minutes

WBOY
Libérer: 2022-01-14 18:08:25
avant
3199 Les gens l'ont consulté

Cet article vous expliquera comment utiliser CSS pour obtenir l'effet de fumée. J'espère qu'il sera utile à tout le monde.

Apprenez à utiliser les CSS pour obtenir des effets de fumée en dix minutes

Regardez attentivement l'effet de fumée. Il y a deux caractéristiques importantes :

  • Effet de flou

  • Sensation granuleuse

Premièrement, regardez l'effet de flou. pensez à utiliser filter : blur() .

Bien sûr, c'est vrai, mais en CSS, en plus des filtres, on peut aussi utiliser d'autres méthodes pour simuler des effets de flou. " CSS pur pour implémenter l'animation de fumée " smoke:

<span>C</span>
Copier après la connexion

Sur la base de ce qui précède, nous pouvons ajouter un déplacement, une rotation, une mise à l'échelle, modifier légèrement le code ci-dessus, ajouter une transformation Transform:

span {
  text-shadow: 0 0 0 whitesmoke;
  animation: smoky 5s;
}
@keyframes smoky {
  to {
    text-shadow: 0 0 20px whitesmoke;
    opacity: 0;
  }
}
Copier après la connexion
et vous pouvez obtenir l'effet suivant:

Après superposition la transformation, on a l'impression qu'un mot s'envole et se transforme en fumée. Sur cette base, il nous suffit de rassembler plusieurs mots et d'utiliser le délai d'animation pour contrôler séquentiellement chaque mot afin de déclencher l'effet d'animation afin d'obtenir l'effet de fumée complet mentionné ci-dessus.

Apprenez à utiliser les CSS pour obtenir des effets de fumée en dix minutesLe pseudo code est le suivant :

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;
  }
}
Copier après la connexion
<span>C</span> S S // ...
Copier après la connexion

Utilisez le filtre de féturbulence SVG pour obtenir l'effet de fumée

La fumée de l'animation de fumée ci-dessus est encore relativement grossière. Principalement parce qu'il manque un peu de grain ? Une partie de la texture de la fumée est manquante.

Pour obtenir un effet de fumée plus raffiné, nous devons utiliser le filtre de SVG Apprenez à utiliser les CSS pour obtenir des effets de fumée en dix minutes

Ensuite, nous utiliserons filter: blur() avec le filtre

À titre d'exemple simple, supposons qu'il y ait plusieurs mots comme celui-ci :

// ... 上述所有 CSS 代码
@for $item from 1 through 21 {
  span:nth-of-type(#{$item}){ 
    animation-delay: #{(($item/10))}s; 
  }
}
Copier après la connexion

CSS simple :

<div">SMOKE</div>
Copier après la connexion
Nous obtenons ces mots avec des couleurs dégradées :

Nous utilisons le filtre

div {
    background: linear-gradient(#fff, #999, #ddd, #888);
    background-clip: text;
}
Copier après la connexion

Utilisez filter: url() pour introduire ce filtre en CSS. Pour un meilleur effet, j'ai introduit ce filtre directement sur :

<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>
Copier après la connexion

Notre police est

On peut dire que cet effet n'a fondamentalement rien à voir avec l'effet de fumée, mais ajoutez simplement un filtre de flou, et quelque chose de magique se produit :

body {
    filter: url(&#39;#filter&#39;);
}
div {
    background: linear-gradient(#fff, #999, #ddd, #888);
    background-clip: text;
}
Copier après la connexion

L'effet entier est instantané La fumée est devenue beaucoup :

Apprenez à utiliser les CSS pour obtenir des effets de fumée en dix minutes

D'accord, ajoutez-y un effet d'animation en boucle et utilisez simplement JavaScript pour le traiter :

body {
    filter: url(&#39;#filter&#39;);
}
div {
    background: linear-gradient(#fff, #999, #ddd, #888);
    background-clip: text;
    filter: blur(5px);
}
Copier après la connexion
Regardez l'effet :

Bien sûr, les effets ci-dessus peuvent être contrôlés par : Apprenez à utiliser les CSS pour obtenir des effets de fumée en dix minutes

' s ajustement de l'attribut baseFrequency

contrôle l'ajustement de l'attribut numOctaves de feTurbulence

contrôle l'ajustement de l'attribut d'échelle de feTurbulence> de 30 à 70, qui est fondamentalement invisible lorsque le contour de. le texte est atteint, le texte tout entier devient atomisé. Nous pouvons créer un effet de survol comme celui-ci :

Apprenez à utiliser les CSS pour obtenir des effets de fumée en dix minutes

Pour le code complet ci-dessus, vous pouvez cliquer ici : CodePen CSS + SVG Text Smoke Hover Effect

De cette façon, basé sur le filtre : flou() avec le , Nous pouvons obtenir un effet de fumée très réaliste. Sur la base de la démonstration ci-dessus, nous pouvons également explorer de nombreux effets intéressants, que je n'entrerai pas dans les détails dans cet article

Apprenez à utiliser les CSS pour obtenir des effets de fumée en dix minutes (Partage vidéo d'apprentissage :

Tutoriel vidéo CSS

)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
css
source:juejin.im
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal