CSSの進化がすごすぎる! 2つの画像を比較するスライダーは数行のコードで実装できるようになりました

2つの画像を重ねて表示し、画像を比較できるスライダーを実装するには、今まではJavaScriptのライブラリなどを使用していたかもしれません。

ほんの少しのJavaScriptと、あとはシンプルなHTMLとCSSで2つの画像を比較するスライダーを実装するテクニックを紹介します。

デモのキャプチャ

まずは、実際の動作をデモページでご覧ください。縦線のレンジバーをマウスでドラッグすると、2つの画像を比較できます。

See the Pen
Easy comparison slider
by coliss (@coliss)
on CodePen.

HTMLはシンプルです。2つの画像をsectionで内包し、縦線のレンジバーをinput type="range"で実装します。

input type="range"は、決められた最小値と最大値の間で値を取得できるフォームの要素です。スタイル無しで実装すると、下記の通りです。

2つの画像はCSS Gridで互いに重ね、CSSのmaskでそれぞれの画像を表示します。縦線のレンジバーはいっぱいに伸ばして、スライダー内のどこでも操作できるようにします。

画像の切り替えは、JavaScriptで行います。スライダー値をカスタムプロパティに書き込み、それがmask--pos値になります。

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

sponsors

top of page

©2024 coliss