【問題】8パズル 問4
問題も大詰めです。
がんばっていきましょう。
TODOを実装し、クリックした位置を取得せよ。
<!DOCTYPE html> <style> .puzzle { width: 300px; height:300px; position: absolute; background: #888; } .puzzle>div { background: #ff8; position: absolute; width: 100px; height: 100px; text-align: center; border: inset 1px #888; } </style> <div class="puzzle"> <div id="pannel_1" style="left:100px;top: 0px;" onclick="onClick(this)">1</div> <div id="pannel_2" style="left:200px;top: 0px;" onclick="onClick(this)">2</div> <div id="pannel_3" style="left: 0px;top:100px;" onclick="onClick(this)">3</div> <div id="pannel_4" style="left:100px;top:100px;" onclick="onClick(this)">4</div> <div id="pannel_5" style="left:200px;top:100px;" onclick="onClick(this)">5</div> <div id="pannel_6" style="left: 0px;top:200px;" onclick="onClick(this)">6</div> <div id="pannel_7" style="left:100px;top:200px;" onclick="onClick(this)">7</div> <div id="pannel_8" style="left:200px;top:200px;" onclick="onClick(this)">8</div> </div> <script> /** * クリックされたDiv要素の位置を取得する * * @param clickedDiv { HTMLElement } クリックされたDiv要素 * @return {{x:number, y:number}} クリックされたDiv要素の位置。3x3のパネルなら、x, y共に 0〜2の数値になる。(pxの座標じゃないよ) */ function getClickedPos(clickedDiv) { // TODO: 実装する } function onClick(clickedDiv) { var result = getClickedPos(clickedDiv); console.log(result); // 5のパネルをクリックしたならば {x:2, y:1} } </script>