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="{ ~ }}" としても同じです。
一般的に関数型を勧めますが、処理が単純なときは、後者のほうが簡便なこともあります。
画像をクリックすると、拡大されます。
<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>
処理内容は例1と同じです。
<img id="例11" src="image1.jpeg" alt="" width = "100" onClick=' var 画像幅 = this.width; <!-- this.width は表示画像幅の意味 --> this.width = 画像幅 * 1.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 -->
小さな画像(サムネイル画像)を並べて表示し、マウスを乗せた画像を拡大表示します。
例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 -->
ベースになる画像(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>
例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>
|
例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>
|
例53:フェードイン/フェードアウト jQueryボタンをクリックすると、画像がゆっくりと表示/非表示されます。 |
<script> $(function(){ $("#例53ボタン").click(function () { $("#例53画像").toggle(5000); // フェードの速度 }); }) </script> <button id="表示ボタン">画像表示</button><br> <img id="例53画像" src="image1.jpeg" alt=""> |