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="">
|