スタートページJavascript

HTML中の画像の操作


HTML内に表示されている画像を拡大・縮小、画像の切替、表示・非表示などの操作に関する事項をまとめました。

このような操作では、jQuery を用いるのが便利です。その利用には、head部で
     <script src="http://code.jquery.com/jquery-latest.js"></script>
を記述しておく必要があります。

画像の操作では、画像にマウスを合わせる(マウスオーバー)やクリックして操作することが多くあります。
処理を関数で記述(this.id を "対象画像" としても同じです。)
     <img id="対象画像" src="画像URL" onMouseOver="関数(this.id)">
     <img id="対象画像" src="画像URL" onClick="関数(this.id)">
処理を img onClick内に記述
     <img id="対象画像" src="画像URL"
       onClick="
         ここに処理を記述する(複数行でよい)
       ">
    onClick="{ ~ }}" としても同じです。
一般的に関数型を勧めますが、処理が単純なときは、後者のほうが簡便なこともあります。


例1:画像の拡大(同一位置)

画像をクリックすると、拡大されます。

<script>
   function 例1(対象画像) {
        var 画像 = document.getElementById(対象画像);
        画像.width = 画像.width * 1.2;                // A
    }
</script>

<p><img id="例1画像"          <!-- B -->
    src="image1.jpeg" alt="" width = "100"   <!-- C -->
    onClick='例1(this.id)'>                <!-- D -->
</input></p>

例11 onClick内に処理を記述

処理内容は例1と同じです。

<img id="例11" src="image1.jpeg" alt="" width = "100"
     onClick='
         var 画像幅 = this.width;  <!-- this.width は表示画像幅の意味 -->
         this.width = 画像幅 * 1.2;
     '>

例2:サムネイル画像の拡大表示

小さな画像(サムネイル画像)を並べて表示し、マウスを乗せた画像を拡大表示します。

ここに <img id="例2拡大画像表示場所"> があります。

<script>
   function 例2(対象画像, 表示場所, 倍率) {                 // A
        var 元画像 = document.getElementById(対象画像);      // B
        var 拡大画像 = document.getElementById(表示場所);    // C
        拡大画像.src = 元画像.src;                           // D
        拡大画像.width = 元画像.width * 倍率;                // E
    }
</script>

<img id="例2画像1"
    src="image1.jpeg" alt="" width = "100"
    onMouseOver='例2("例2画像1", "例2拡大画像表示場所", 2)'> <!-- F -->
    <!--  : 例2画像2(image2.jpeg)について同様な記述 -->
<img id="例2拡大画像表示場所">                        <!-- G -->

例3:サムネイル画像の拡大表示 jQuery

小さな画像(サムネイル画像)を並べて表示し、マウスを乗せた画像を拡大表示します。
例2と同じですが、jQuery を用いています。

<script type="text/javascript">
    $(function() { 
        var 拡大画像 = new Image();          // A
        $("[id^='画像']").hover(             // B
            function(){
                拡大画像 = document.getElementById("拡大画像表示位置");// C
                拡大画像.src = this.src;     // D
                拡大画像.width = "200";      // E
            }, 
            function () { 
                拡大画像.width = "0";       // F
            } 
        ); 
    }); 
</script>

<p>
<img id="画像1" src="image1.jpeg" width="100" alt="">  <!-- G -->
<img id="画像2" src="image2.jpeg" width="100" alt="">
</p> 
<img id="拡大画像表示位置">       <!-- H -->

例2との比較


例4:画像の切り替え jQuery

ベースになる画像(image1.jpeg)が表示されており、それにマウスが乗ると代替の画像(image2.jpeg)になります。代替画像からマウスが離れるとベース画像に戻ります。

<script type="code">
    $(function(){ 
        $("#例4表示位置").hover( 
            function(){ 
                var 代替画像 = $(this).attr("src")                        // A
                    .replace("image1.jpeg","image2.jpeg");  // B
                $(this).attr("src",代替画像);                        // C
            }, 
            function(){ 
                var ベース画像 = $(this).attr("src")
                    .replace("image2.jpeg","image1.jpeg"); 
                $(this).attr("src",ベース画像); 
            } 
        ); 
    }); 
</script>

<p><img id="例4表示位置" src="image1.jpeg" alt=""></p>

例5:画像の表示・非表示

例51:単純な表示・非表示(display)


function 例51(対象画像) {
    var 画像 = document.getElementById(対象画像);
    if (画像.style.display != "none") 画像.style.display ="none";
    else 画像.style.display ="block";
}

<img id="例51画像" src="image1.jpeg">
<button onClick="例51('例51画像')">表示/非表示(display)></button>
  • display: block(表示)/ none(非表示)
  • 非表示にすると、img 領域が小さくなります。

例52:単純な表示・非表示(visible)


function 例52(対象画像) {
    var 画像 = document.getElementById(対象画像);
    if (画像.style.visibility != "hidden") 画像.style.visibility ="hidden";
    else 画像.style.visibility ="visible";
}

<img id="例52画像" src="image1.jpeg">
<button onClick="例52('例52画像')">表示/非表示(display)></button>
  • visibility: visible(表示)/ hidden(非表示)
  • 非表示にしても img 領域は変わりません。

例53:フェードイン/フェードアウト jQuery

ボタンをクリックすると、画像がゆっくりと表示/非表示されます。


<script>
$(function(){
    $("#例53ボタン").click(function () {
        $("#例53画像").toggle(5000);  // フェードの速度
    });
})
</script>

<button id="表示ボタン">画像表示</button><br>
<img id="例53画像" src="image1.jpeg" alt="">