萌えハッカーニュースリーダー

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

出典: https://muffinman.io/blog/css-image-glitch/
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

えっ、それは困ります!私の顔は精密機械でできていますから、グリッチはご勘弁を!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search