写真の上にマウスを置いて、複数枚写真が変化する方法を教えてください。
ブログで、写真の上にマウスを乗せると写真が切り替わるというのがありますが(コレはナレッジにありました)、とあるブログで最初の写真A→(オンマウスで)B→C→Dという風になっているのを見たことがあります。このように変わる写真を複数枚にする方法を教えてください。
よろしくお願いします。
回答(1)
1.
まず、script直下に、
<script>
var i=0;
var file=new Array('A.jpg', 'B.jpg', 'C.jpg', 'D.jpg');
</script>
です。次に関数を。さっきのscript内で結構です。
function change_img(){
i++;
if(i==5)i=0;
document.xxx.src=file[i];
}
xxxの部分には、画像のname属性の値が入ります。あとは、
img src="A.jpg" name="xxx" onMouseOver="change_img();"
完璧です。
コメント(5)
>>1
×i==5
→ i==file.length-1
×document.xxx.src
→ document.getElementById("xxx").src
×(↑の都合タグの方も変更)
→ <img src="A.jpg" id="xxx" onMouseOver="change_img();">
>>#2
>i
応用上もそうですが、回答1のコードではfileの要素は4つなので、file[0]~[3]しか中味がないのでは?
>id
name属性をdocument.xxxみたいに参照できるのは、IEだけなのでは?
あと、グローバルな変数名にiとかfileとかはよくないです。
>>1
ご回答ありがとうございます。
やってみたのですが、うまくできないのですが・・・
どこが間違っているのか、見ていただけませんか?
<script>
var i=0;
var file=new Array('http://image.blog.livedoor.jp/bluemoonrose/imgs/8/...', 'http://image.blog.livedoor.jp/bluemoonrose/imgs/2/...', 'http://image.blog.livedoor.jp/bluemoonrose/imgs/0/...');
function change_img(){
i++;
if(i==file.length-1)i=0;
document.getElementById("xxx").src=file[i];
}
</script>
<img src="http://image.blog.livedoor.jp/bluemoonrose/imgs/8/...; id="xxx" onMouseOver="change_img();">
一連のコメントを読むと出しづらい雰囲気ではありますが
http://knowledge.livedoor.com/27233
こちらの方法も試してみてはいかがでしょうか。



