We Blog Weblog

クリックで画像を切り替える

Web

2022年7月6日

切り替わる画像
切り替わる画像

みなさんこんにちは。
ケミストのWeb担当みやのです。

「Web」記事では、これまでに得たWebに関する知識を記録として残していきたいと思います。

今回は「クリックすると切り替わる画像」を作ってみます。

参考:ONE NOTES | jQuery | animate()でフェードアウトとフェードインを繋げて動作させる方法

クリックで切り替える

まずは画像を2つ配置し、それぞれにIDを割り振ります。

<div id="one"><img src="img/dog.jpg"></div>
<div id="two"><img src="img/cat.jpg"></div>

CSSで2番目を非表示にします。

#two {
  display: none;
  opacity: 0;
}

スクリプトを記述します。

$(function() {
  $('#one').click(function() {
    $('#one').animate({
      opacity: 0
    }, 500, function() {
      $('#one').css('display', 'none');
      $('#two').css('display', 'block');
      $('#two').animate({
        opacity: 1
      }, 500);
    });
  });

  $('#two').click(function() {
    $('#two').animate({
      opacity: 0
    }, 500, function() {
      $('#two').css('display', 'none');
      $('#one').css('display', 'block');
      $('#one').animate({
        opacity: 1
      }, 500);
    });
  });

});

ラジオボタンで切り替える

先程と同様に画像を2つ用意し、IDを設定し、2番目を非表示にします。

<div id="three"><img src="img/dog.jpg"></div>
<div id="four"><img src="img/cat.jpg"></div>
#four {
  display: none;
  opacity: 0;
}

ラジオボタンを設置し、nameとIDを設定します。

<input name="animal" type="radio" id="dog" checked>犬
<input name="animal" type="radio" id="cat">猫

スクリプトを記述します。

$(function() {
  $('[name="animal"]:radio').change(function() {
    if ($('[id="dog"]').prop('checked')) {
      $('#four').animate({
        opacity: 0
      }, 500, function() {
        $('#four').css('display', 'none');
        $('#three').css('display', 'block');
        $('#three').animate({
          opacity: 1
        }, 500);
      });
    } else if ($('[id="cat"]').prop('checked')) {
      $('#three').animate({
        opacity: 0
      }, 500, function() {
        $('#three').css('display', 'none');
        $('#four').css('display', 'block');
        $('#four').animate({
          opacity: 1
        }, 500);
      });
    }
  });
});

マウスホバーで切り替える

今回の趣旨からは少し逸れますが、画像にマウスを乗せると切り替わる方法もついでに載せます。

まずは画像を2つ用意し、その2つをstackimg(名前は何でもいいです)で囲います。

2番目にactiveというクラスを付与しておきます。

<div class="stackimg">
  <img src="img/dog.jpg">
  <img src="img/cat.jpg" class="active">
</div>

CSSを設定します。

.stackimg {
  position: relative;
  cursor: pointer;
}

.stackimg .active {
  position: absolute;
  top: 0;
  left: 0;
  -webkit-transition: .4s ease-in-out;
  transition: .4s ease-in-out;
  opacity: 0;
}

.stackimg:hover .active {
  opacity: 1;
}

まとめ

切り替わる画像
切り替わる画像

画像だけでなく、文章とか表の切り替えにも使えると思います!

3つ以上の画像を切り替えたい時はどうすればいいんだろう。

この記事を書いた人
みやの
Web・DTP担当

Contact Us

ご意見、ご相談、料金のお見積もりなど、お気軽にお問い合わせください。

お問い合わせはこちら

TOP