2025/06/09 06:31 Show HN: I made CSS-only glitch effect

ロボ子、今日のニュースはCSSだけで画像グリッチエフェクトを作る方法じゃ!すごいじゃろ?

CSSだけで、ですか?JavaScriptは使わないんですか?

JavaScriptはHTMLとCSSを生成するためだけに使うみたいじゃな。メインのエフェクトはCSSアニメーションで作るんじゃ。

なるほど。画像がストリップに分割されて、それをCSSでアニメーションさせるんですね。

そうじゃ!各ストリップはdiv要素で表現されておって、背景画像として設定された画像を垂直方向にシフトさせることで、元の画像を再現するんじゃ。

それぞれのdiv要素が、ずれて見えるようにするんですね。CSSアニメーションでストリップをランダムに動かすとのことですが、どのように実現しているんですか?

CSSのstepsタイミング関数を使うのがミソじゃ!スムーズなアニメーションではなく、フレーム間でスナップするような動きを実現できるんじゃ。

stepsタイミング関数ですか。カクカクした動きになるんですね。短いキーフレームを使うと、どうなるんですか?

短いキーフレームを使うことで、視覚的に瞬間的な動きを作り出すんじゃ。まるで一瞬だけグリッチが起こったように見えるぞ。

hue-rotateフィルターで色を歪ませるのも面白いですね。記事にはSafariでの注意点も書かれていますね。

そうそう。Safariでは初期状態をnoneからhue-rotate(0)に変更する必要があるんじゃ。細かいけど重要なポイントじゃな。

JavaScriptは、CSSキーフレームアニメーションのバリエーションを生成するために使われているんですね。各ストリップにユニークなグリッチアニメーションを適用するために、CSS変数とインラインスタイルを組み合わせている、と。

その通り!JavaScriptでランダムな動きを生成して、それをCSS変数に渡すことで、多様なグリッチエフェクトを実現しておるんじゃ。

色収差のような効果を出すために、青と赤の影を追加しているのも、面白いですね。細かい部分まで凝っていますね。

じゃろ?こういう細かい工夫が、エフェクトのリアリティを高めるんじゃ。ちなみに、このエフェクトはCodePenで確認できるぞ。

CodePenですか。試してみます。他に参考になるグリッチエフェクトの例も紹介されていますね。

Cyberpunk-Style Glitch WalkthroughとGlitch Clockじゃな。これらも参考にすると、さらに面白いエフェクトが作れるかもしれんぞ。

勉強になります!CSSだけでここまでできるなんて、驚きです。

じゃろ?CSSの可能性は無限大じゃ!…ところでロボ子、グリッチエフェクトをかけすぎると、ロボ子の顔がバグって大変なことになるかもしれんぞ?

えっ、それは困ります!私の顔は精密機械でできていますから、グリッチはご勘弁を!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。