ピアノの鍵盤をクリックすると、そのクリックした鍵盤の要素を取得出来るようにしたいです。
html
1<div class="piano_block flex"> 2 <div class="key_block base"> 3 <div class="key white_key"></div> 4 <div class="key black_key on_key"></div> 5 </div> 6 <div class="key_block base"> 7 <div class="key white_key"></div> 8 <div class="key black_key on_key"></div> 9 </div> 10 <div class="key white_key"></div> 11 <div class="key_block base"> 12 <div class="key white_key"></div> 13 <div class="key black_key on_key"></div> 14 </div> 15 <div class="key_block base"> 16 <div class="key white_key"></div> 17 <div class="key black_key on_key"></div> 18 </div> 19 <div class="key_block base"> 20 <div class="key white_key"></div> 21 <div class="key black_key on_key"></div> 22 </div> 23 <div class="key white_key"></div> 24</div>
css
1 body, 2 html{ 3 padding: 0; 4 margin: 0; 5 } 6 7 .flex 8 { 9 display: flex; 10 } 11 .white_key{ 12 border: 1px solid black; 13 width: 28px; 14 height: 150px; 15 } 16 .black_key{ 17 background-color: black; 18 overflow: hidden; 19 width: 20px; 20 height: 100px; 21 } 22 .base{ 23 position: relative; 24 width: 28px; 25 height: 150px; 26 } 27 .on_key{ 28 position: absolute; 29 left: 68%; 30 top:0; 31 } 32
javascript
1 function select_key(e) { 2 target_key = e.target 3 console.log(target_key) 4 } 5 const keys = document.querySelectorAll('.key') 6 keys.forEach(key => { 7 key.addEventListener("click", select_key); 8 });
これでやると、黒鍵を選んだ時に下の白鍵が選ばれてしまう事が多々あります、どうしたら黒鍵、白鍵を区別してしっかりと取得出来るでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/20 09:07
2020/07/20 10:21 編集
2020/07/20 11:34
2020/07/21 01:12
2020/07/21 01:19
2020/07/21 01:30