ノイズテキストCSSの紹介

Original:
Title: CSS Glitched Text
Author: Lucas Bebber
Source: https://codepen.io/lbebber/pen/ypgql
License: MIT License

HELP

仕組み: ある要素のbeforeとafterにその要素のdata-textに入れられた値を格納する。beforeとafterの文字の位置は、親要素の文字の位置とずれている。

アニメーションでbeforeとafterの一部を親要素に描画する。上記の通りbeforeとafterの文字の位置は親要素とずれている為、結果として文章の形がノイズがかかったように乱れる。

上記の仕組みの為、親要素内のテキストとdata-textの内のテキストは同じものにしないといけない。また、beforeとafterに背景色を設定し、親要素の文字を背景で塗りつぶして隠す必要がある。

また動作の仕様上ノイズは1行目にしかかからない。

共通CSSアニメーション:

@keyframes noise-anim {
  0% {
    clip: rect(27px, 9999px, 93px, 0);
  }
  5% {
    clip: rect(88px, 9999px, 3px, 0);
  }
  10% {
    clip: rect(21px, 9999px, 64px, 0);
  }
  15% {
    clip: rect(63px, 9999px, 64px, 0);
  }
  20% {
    clip: rect(21px, 9999px, 27px, 0);
  }
  25% {
    clip: rect(27px, 9999px, 98px, 0);
  }
  30% {
    clip: rect(23px, 9999px, 57px, 0);
  }
  35% {
    clip: rect(6px, 9999px, 27px, 0);
  }
  40% {
    clip: rect(38px, 9999px, 65px, 0);
  }
  45% {
    clip: rect(43px, 9999px, 53px, 0);
  }
  50% {
    clip: rect(56px, 9999px, 7px, 0);
  }
  55% {
    clip: rect(63px, 9999px, 87px, 0);
  }
  60% {
    clip: rect(65px, 9999px, 2px, 0);
  }
  65% {
    clip: rect(69px, 9999px, 6px, 0);
  }
  70% {
    clip: rect(78px, 9999px, 10px, 0);
  }
  75% {
    clip: rect(84px, 9999px, 21px, 0);
  }
  80% {
    clip: rect(52px, 9999px, 36px, 0);
  }
  85% {
    clip: rect(69px, 9999px, 35px, 0);
  }
  90% {
    clip: rect(39px, 9999px, 31px, 0);
  }
  95% {
    clip: rect(27px, 9999px, 79px, 0);
  }
  100% {
    clip: rect(3px, 9999px, 71px, 0);
  }
}
 
@keyframes noise-anim-2 {
  0% {
    clip: rect(89px, 9999px, 41px, 0);
  }
  5% {
    clip: rect(59px, 9999px, 17px, 0);
  }
  10% {
    clip: rect(74px, 9999px, 94px, 0);
  }
  15% {
    clip: rect(100px, 9999px, 95px, 0);
  }
  20% {
    clip: rect(59px, 9999px, 44px, 0);
  }
  25% {
    clip: rect(36px, 9999px, 29px, 0);
  }
  30% {
    clip: rect(45px, 9999px, 52px, 0);
  }
  35% {
    clip: rect(90px, 9999px, 11px, 0);
  }
  40% {
    clip: rect(90px, 9999px, 62px, 0);
  }
  45% {
    clip: rect(29px, 9999px, 64px, 0);
  }
  50% {
    clip: rect(44px, 9999px, 78px, 0);
  }
  55% {
    clip: rect(27px, 9999px, 34px, 0);
  }
  60% {
    clip: rect(67px, 9999px, 69px, 0);
  }
  65% {
    clip: rect(73px, 9999px, 59px, 0);
  }
  70% {
    clip: rect(37px, 9999px, 42px, 0);
  }
  75% {
    clip: rect(34px, 9999px, 61px, 0);
  }
  80% {
    clip: rect(45px, 9999px, 7px, 0);
  }
  85% {
    clip: rect(33px, 9999px, 4px, 0);
  }
  90% {
    clip: rect(55px, 9999px, 95px, 0);
  }
  95% {
    clip: rect(52px, 9999px, 85px, 0);
  }
  100% {
    clip: rect(81px, 9999px, 7px, 0);
  }
}

ベーシック:

You

ダブルカラー:

Want

HackingStyle:

SCP

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License