jQueryでマウスオーバー時に画像を切り替える方法です。
.hover()で画像を切り替える
あらかじめ、使用する画像に「img_on.png」と「img_off.png」というように_on
と_off
を付けたものを用意しておきます。そして、jQueryを使用してhover
時にこれらの画像を切り替えるように設定していきます。
HTMLは以下のように記述して、js-hover
というclassを付けています。
<a href="#" class="js-hover">
<img src="https://gri-t.com/sample/images/button_off.png" alt="">
</a>
sample1は.hover()
を使用して、画像にマウスオーバーしたら、src
を_off
から_on
に切り替わるように設定しています。
See the Pen
jQuery hover img change by gri-t (@gri-t)
on CodePen.
CSSで画像を切り替える
先ほどの例だと、画像がパッと切り変わってしまっていたので、ふわっとアニメーションさせながら切り変わるようにしたいという場合はCSSで実装するのが簡単かと思います。
画像は先ほどと同様、onとoffの画像を二枚用意し、重ねて表示させます。
<a href="#" class="rollover">
<img class="on" src="https://gri-t.com/sample/images/button_on.png" alt="">
<img class="off" src="https://gri-t.com/sample/images/button_off.png" alt="">
</a>
下記のSample2の例では、on画像の上にoff画像が重なっていて、hoverしたら、off
がopacity: 0
になるように設定しています。
See the Pen
jQuery hover img change by gri-t (@gri-t)
on CodePen.
.hover()でアニメーションさせながら画像を切り替える
jQueryでもCSSのようにふわっとアニメーションさせた場合、.animate()
を使ってopacity
を変化させることで実装可能です。
<a href="#" class="js-hover-fade">
<img src="https://gri-t.com/sample/images/button_off.png" alt="">
</a>
Sample3では、off画像の前に.before()
を使って、styleでopacity: 0
を指定したon
画像を追加します。そして、.animate()
でふわっと切り替えます。
See the Pen
jQuery hover img change by gri-t (@gri-t)
on CodePen.
以上、マウスオーバー時に画像を切り替える方法でした。