続・CSS3でマウスオーバーすると画像がぽよんっと動くアニメーション

続・CSS3でマウスオーバーすると画像がぽよんっと動くアニメーション

続・CSS3でマウスオーバーすると画像がぽよんっと動くアニメーション


先日投稿した記事

CSS3でマウスオーバーすると画像がぽよんっと動くアニメーション

ですが、ぽよんっ!というアニメーションがちらついて見えてしまっていました。

原因は、画像の端のほうでマウスオーバーをした場合に、
丸が一度小さくなる際マウスオーバーの状態から外れてしまうことによって、CSSの擬似クラス:hoverに定義したアニメーションが効かなくなることによるものです。

そこでこのちらつきをなるべく簡単に改善するために

  • .animationにアニメーションを定義
  • .animBallBoxという箱で丸を囲い、
    箱にアニメーションクラスを追加/削除でアニメーション開始/終了

と修正することにしました。

CSS3だけでは箱Aを:hoverした際に、箱Bをアニメーションさせるということができなさそうだったので ((追記:CSS3だけでも実装可能とご指摘いただきました。次回CSS3だけでの実装を紹介させていただきます。)) 、jQueryのaddClassremoveClassを使いました。

[BEFORE]
別ウィンドウで開く

[AFTER]
別ウィンドウで開く

特に丸の縁に近い方にマウスオーバーをしてみると、違いがよく分かるかと思います。

illust_b

illust_a
では、コードです。

HTML

<head>内でjQueryを読み込みます。

.animBallBoxという大きさが固定された箱の中に、.animBallという動かす丸を入れます。

jQuery

CSS

間違っている点などありましたら、ご指摘ください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">