js实现五子棋

xiaoxiao2021-02-28  43

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <style> table{ width: 700px; height: 700px; background: aliceblue; box-shadow: cadetblue; margin:6% auto; border-collapse: collapse; } td{ border:1px solid darkred; width: 68px; height: 68px; } .divw { width: 100%; height: 100%; background: white; border-radius: 50%; box-shadow: 0px 0px 10px gray; } .divb { width: 100%; height: 100%; background: black; border-radius: 50%; box-shadow: 0px 0px 20px gray; } </style> <body> <table> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr><tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr><tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr><tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr><tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr><tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr><tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr><tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr><tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr><tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <script> window.onload=function () { var tabEle=document.querySelectorAll("tr td"); var a=false; for(var index=0;index<tabEle.length;index++){ tabEle[index].onclick=function () { if(a==false){ if(this.className==''){ fall('divw'); this.className='white'; this.appendChild(div); a=true; } } else{ if(this.className==''){ fall('divb'); this.className='black'; this.appendChild(div); a=false; } } function fall(classEle) { div=document.createElement('div'); div.className=classEle; } } } } </script> </body> </html> 效果如图: 几点收获:border-callapse:设置表格边框是否合并为单一的边框; 由于每次放置棋子都是在方格中新添加,可以设置flag判断该方格有没有放置棋子,并决定放置白棋还是黑棋。ClassName都为“”,我们可以根据其className做文章,用到了createElement() appendChild(), 事实上,在if语句中添加ClassName是多余的,没有起到明显作用。在最后fall方法中统一设置ClassName即可,不同在于css渲染是白棋还是黑棋。 几点疑惑:棋盘方格大小设置 与 其他数字计算是否有什么关系。只有69px左右时,棋子是铺满的,其他设置就会出现椭圆,还没有搞明白。
转载请注明原文地址: https://www.6miu.com/read-2625123.html

最新回复(0)