CSS3とjqueryを使ってクリックされた所を起点に波紋アニメーションさせる

-
カテゴリー:
CSS 

5月ですね。
今年はセルインメイではないんですかね(滝汗

今回の記事の内容とは違うのですが、先日、お仕事でCSSを使い波紋を描くようなアニメーションをさせる必要があったので、いろいろと応用できるのではないかと思い、メモ程度にコードなどを残したいと思います。

以下CSSです。

 

念のため、ベンダープリフィックス入れてるんで、かなりコード自体は長く感じてしまうかもしれません。

#circleがアニメーションを適用させるためのボックスとなりborder、border-radiusの設定で赤いラインの入った丸を描きます。
box-shadowはおまけです。

opacityが0になっているのは、アニメーション終了時に非表示の状態にするためです。※他の方法もあるとは思います。

animation-******とついているのがアニメーションに関する設定なのですが、circleという名前のアニメーションを適用するように設定し、あとは、アニメーションさせる回数や速度、イージングの設定などを行っています。

@keyframes circleの中がそのアニメーションの内容で縦横0pxの円が0.8sかけて156pxに大きくなりながら、opacityが1から0に変化していきます。

続いてjqueryの記述です。

上記では、#wrapper内がクリックされた時に処理を行っています。

処理の内容はまずはじめに#wrapperの中に波紋アニメーション用の#circleを挿入し、非表示にしています。

そして、#wrapper内がクリックされたら、クリックされた位置を取得し、#circleのtopとleftにその取得した座標を挿入し、表示させる。
主要なブラウザでは、動作の確認ができたのですが、IEだと比較的新しいバージョンでも動作しないようです。

もっとうまい記述方法もあるとは思いますが、アレンジしていただければと思いますm(。。)m

サンプルはこちら

 

 

商品画像を上下中央寄せにした時のCSSテクニック

-
カテゴリー:
CSS 

商品一覧ページなどで、商品のサムネイル画像が一定のサイズじゃない場合に、上下左右中央寄せするCSSテクニックのご紹介です。
※縦横のサイズに上限あり。

divで構成している場合、左右の中央寄せは簡易的にできるんですが、上下中央寄せはひと工夫必要になります。
tableで回避するなんてこともできるんですが、相当不細工なHTMLになるため、できればdiv構成にしたいそんな時は以下の手法を使います。

まず、HTML(クラス名は適当です)

 

続いて、CSS

左右中央寄せであれば、少ないコードの記述で対応できるのですが、上下の中央寄せが加わるとけっこうコードが面倒になるんですよね(汗

cssのキーフレームアニメーションと使ってみる

-
カテゴリー:
CSS 

まだ、対応ブラウザの事など考えると利用頻度は少ないのですが、CSSによるキーフレームアニメーションを試してみました。

 

まずHTMLです。

上記のball.jpgをキーフレームアニメーションで動かします。
次にアニメーションをさせるimg要素のCSSを記述。

animation-name: キーフレーム名でキーフレームを設定。
animation-timing-functionでアニメーションの進行速度の割合を設定。※linear、ease-in、ease-out、ease-in-out等
animation-iteration-countでアニメーションさせる回数の設定。ここでは、infiniteを指定し、無制限に行っています。
animation-durationで1回のアニメーションにかかる時間の設定。4s=4秒。

 

次に、キーフレーム本体のCSSの記述です。

 

@keyframes キーフレーム名 { アニメーション処理 }のように記述を行います。
上記記述では@-webkit-keyframes キーフレーム名 { アニメーション処理 }とベンダープリフィックスをつけたキーフレームも記述していますが、iphoneでの動作を念頭に入れた記述を行っています。

アニメーションの内容はtransform: translate(X座標,Y座標)で座標を動かし、決められた枠内の移動を繰り返す内容です。
 

サンプルはこちら

 

 

12