閲覧いただきありがとうございます。
ご回答のほど宜しくお願いします。
前提・実現したいこと
HTML,CSS,JSを用いて、画像にホバーしたら別の画像に切り替わるようにしたいと思っています。
HTMLはwrapper構造を用いて3つの画像が横並びになるようにしています。
それぞれの画像 img_a_off
img_b_off
img_c_off
について、ホバーしたときにimg_a_on
img_b_on
img_c_on
に切り替わるようにしたいです。
発生している問題・エラーメッセージ
プレビューしたところ、ホバーしようとすると画像が表示されません(alt属性に入力した文字が出てきます)。コンソールのエラーにはnet::ERR_FILE_NOT_FOUND
と書かれています。HTML,JS双方のsrc属性に入力した画像のパスは正しいです。
該当のソースコード
HTML
1<div class="wrapper"> 2 <a href="#"><img id="top_a" src="img_a_off.png" class="item" onmouseover="mouseon1();" onmouseout="mouseoff1();" alt="画像Aを表示"></a> 3 <a href="#"><img id="top_b" src="img_b_off.png" class="item" onmouseover="mouseon2();" onmouseout="mouseoff2();" alt="画像Bを表示"></a> 4 <a href="#"><img id="top_c" src="img_c_off.png" class="item" onmouseover="mouseon3();" onmouseout="mouseoff3();" alt="画像Cを表示"></a> 5</div>
CSS
1.wrapper { 2 overflow: hidden; 3 width: 100%; 4} 5.item { 6 float: left; 7 padding: 30px 30px 40px 50px; 8 width: 25%; 9}
JavaScript
1function mouseon1() { 2 var obj1 = document.getElementById("top_a"); 3 obj1.src = "img_a_on.png"; 4} 5function mouseon2() { 6 var obj2 = document.getElementById("top_b"); 7 obj2.src = "img_b_on.png"; 8} 9function mouseon3() { 10 var obj3 = document.getElementById("top_c"); 11 obj3.src = "img_c_on.png"; 12} 13 14function mouseoff1() { 15 var obj1 = document.getElementById("top_a"); 16 obj1.src = "img_a_off.png"; 17} 18function mouseoff2() { 19 var obj2 = document.getElementById("top_b"); 20 obj2.src = "img_b_off.png"; 21} 22function mouseoff3() { 23 var obj3 = document.getElementById("top_c"); 24 obj3.src = "img_c_off.png"; 25}
試したこと
●ゆっくりホバーさせてみると、どうやらwrapper構造全体もしくはmarginの範囲で画像が表示されなくなることが分かりました。
●img_aにホバーしようとすると、同時にimg_b, img_cも画像が表示されなくなります。
最初は funciton mouseonX()
を、数字で分けず3つ全てくくっていましたが、バラバラにしました。
●ホバーから解除(mouseout)しても画像は表示されないままです。
........................
足りない情報があれば教えてください。よろしくお願いいたします!
回答2件
あなたの回答
tips
プレビュー