更新日:2017年7月15日
マウスオーバーした時にそのマウスオーバーした要素自身を入れ替えたり、変化させるjQueryの記述はよく見掛けますが、
マウスオーバーした要素とは違う別の要素を入れ替えたり、変化させるjQueryの記述はほとんど見掛けなかった為、記事を作成してみました。
言葉で説明しても伝わりにくいので、いうならば下記のようなもののことです。
■赤い丸に変化(マウスをのせてね)
■青い丸に変化(マウスをのせてね)
■黄色い丸に変化(マウスをのせてね)
赤い丸は情熱的ですね
マウスオーバーするとそれに連動して画像とテキストが入れ換わりましたね。
例えば、■青い丸に変化(マウスを乗せてね)にマウスをのせると、
青い丸の画像に変化して、テキストが「青い丸は知的ですね」に変化しました。
それではどのように実装しているのかというと、HTMLで
■赤い丸に変化(マウスをのせてね)
■青い丸に変化(マウスをのせてね)
■黄色い丸に変化(マウスをのせてね)
赤い丸は情熱的ですね
と記述します。
画像のパスはあなたの環境に応じて書き換えて下さい。
また、別にこの形でHTMLを書かなければならないという訳ではありません。肝心なのはclassを当てているということです。なので今回の例の場合は
.change_btn01、.change_btn02、.change_btn03、.chenge_image、.change_text
の5つのclassが当てられたHTMLがあるということが重要です。
そしてjQueryには
$(function() { $(".change_btn01").hover(function() { $(".chenge_image").attr("src","images/red.png"); $(".change_text").text("赤い丸は情熱的ですね"); }); $(".change_btn02").hover(function() { $(".chenge_image").attr("src","images/blue.png"); $(".change_text").text("青い丸は知的ですね"); }); $(".change_btn03").hover(function() { $(".chenge_image").attr("src","images/yellow.png"); $(".change_text").text("黄色い丸は明るいイメージですね"); }); });
と記述します。
これにて完成しました。
簡単にjQueryのコードの解説をすると、
$(".change_btn01").hover(function() {
は.change_btn01にマウスオーバーしている時に…という意味になります。
今回の例でいうと、「■赤い丸に変化(マウスをのせてね)」のテキストにマウスをのせている時に…ということになります。
$(".chenge_image").attr("src","images/red.png");
は.chenge_imageの画像のパスを書き換えるというもの。
今回の例でいうと、imagesフォルダの中のred.pngに書き換えています。
$(".change_text").text("赤い丸は情熱的ですね");
は.change_textのテキストを書き換えるというものになります。
今回の例でいうと「赤い丸は情熱的ですね」というテキストに書き換えています。
紐解いてしまえば、単純なjQueryの記述を組み合わせただけのものなのですが、これらはとても汎用性のある記述です。複雑なコードも読み解けばこうした記述の組み合わせです。
皆様の一助になれば幸いです。