CSSはどんどん進化している! マグネットのようにくっつくエフェクトを実装するテクニック -CSS Anchor Positioning

ナビゲーションのアイテムをホバーした時にマグネットのようにくっついてスライドさせるエフェクトをCSSで実装するテクニックを紹介します。

これまでは、JavaScriptがないと実装できないエフェクトでした。レスポンシブにも完全対応、アイテムが二段・三段と複数になっても、水平・垂直になってもエフェクトは追従します。

デモのキャプチャ

Anchor Magnet Slide Menu

実際の動作は、デモページでお楽しみください。
右上の矢印アイコンをクリックすると、アイテムの並びが垂直・水平になります。また、右下のアイコンをクリックすると、ダーク・ライトモードになります。

※CSSのみで動作するのは、Chrome 125+です。それ以外のブラウザはポリフィルが使用されています。

See the Pen
Anchor Magnet Slide Menu
by coliss (@coliss)
on CodePen.

レスポンシブにも対応しており、幅が狭い場合でも同様に機能します。

デモのキャプチャ

Anchor Magnet Slide Menu: 幅を狭くして表示

HTMLは、シンプルです。

実装のポイントとなるのは、Chrome 125でサポートされた新機能CSS Anchor Positioningです。
参考: Chrome 125で新しく追加された4つのCSSの機能

この機能を使用すると、今まではJavaScriptを使用しないと取得できませんでしたが、CSSだけで絶対位置に配置された要素をページ上の1つ以上の要素(アンカー)に結びつけることができるようになりました。

ホバーした際に表示されるエフェクトがマグネットのようにくっつくのは、下記のCSSで実装されています。

2024年5月現在、CSS Anchor PositioningのサポートブラウザはChrome 125+です。デモでは非サポートブラウザ用にポリフィルが使用されています。

元ネタは、下記ポストより。

sponsors

top of page

©2024 coliss