JavaScript 画像データを入れ替える

最終更新日

画像を入れ替えるには、Imageオブジェクトのsrcプロパティに画像のURLを指定します。その際、入れ替える画像データが読み込まれていないと、瞬時に切り替わりません。低速な回線の場合は、次のようにあらかじめ、画像を読み込んでおく方法もあります。

( new Image() ).src = "画像のURL";

なお、ロールオーバーによる単純な画像の入れ替えであれば、JavaScriptを利用するよりもCSSを使って入れ替える方がよい場合もあります。

<body>
<script>
    window.addEventListener("load" , function(){
      
        //img要素にアクセスするために参照を変数に代入
        var myImage = document.getElementsByTagName("img")[0];
        //mouseoverイベントを割り当てる
        myImage.addEventListener("mouseover", function(){
            this.src = "images/keyvisual.jpg";
        },false);

        //mouseoutイベントを割り当てる
        myImage.addEventListener("mouseout", function(){
            this.src = "images/629959_s.jpg";
        },false);

    }, false);
</script>
<div>
    <img src="./images/629959_s.jpg">
</div>
</body>

画像上にマウスを乗せると画像が入れ替わります。Androidの場合は、タッチすると画像が入れ替わります。

実行結果

マウスを画像から離すと、元の画像に戻ります

実行結果

CSSでロールオーバーを行うには

CSSでロールオーバーを行うには、「:hover疑似クラス」を利用します。次の場合、HTMLで「<div id=”myImage”></div>」となっている背景画像を入れ替えるには、「background-position」を使って表示する画像の位置を変化させることでロールオーバーを実現することができます。

#myImage{
    width: 160px;
    height: 120px;
    background-image: url(images/myphoto1.jpg);
}
#myImage:hover{
    background-iamge: url(images/myphoto2.jpg);
}