前端案例:HTML页面Tab页内表格行数据点击弹出模态框
该代码功能:HTML页面有三个Tab页,可点击切换,鼠标点击各行数据,可以弹出模态框并置顶置灰,鼠标点击模态框外部可关闭模态框
代码示例-该代码由ChatGPT 3.5协助修改完成
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>表格展示页面</title> <style> .tab { display: inline-block; padding: 10px 20px; background-color: #f1f1f1; border-radius: 10px 10px 0 0; cursor: pointer; } .tab.active { background-color: #ccc; } table { border-collapse: collapse; width: 100%; } th, td { border: 1px solid #ccc; padding: 8px; text-align: left; width: 100px; } .modal { display: none; position: fixed; z-index: 9999; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 600px; height: 400px; background-color: #fff; border-radius: 5px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); padding: 20px; } .modal-background { display: none; position: fixed; z-index: 9998; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); } .close-btn { position: absolute; top: 10px; right: 10px; cursor: pointer; } </style> <script> function switchTab(index) { var tabs = document.getElementsByClassName("tab"); for (var i = 0; i < tabs.length; i++) { tabs[i].classList.remove("active"); } tabs[index].classList.add("active"); var tables = document.getElementsByTagName("table"); for (var i = 0; i < tables.length; i++) { if (i === index) { tables[i].style.display = "block"; } else { tables[i].style.display = "none"; } } } function showModal(row) { var rowData = []; var cells = row.getElementsByTagName("td"); for (var i = 0; i < cells.length; i++) { rowData.push(cells[i].textContent); } var modal = document.getElementById("modal"); var content = document.getElementById("modal-content"); content.innerHTML = rowData.join("<br>"); modal.style.display = "block"; document.getElementById("modal-background").style.display = "block"; } function closeModal() { var modal = document.getElementById("modal"); modal.style.display = "none"; document.getElementById("modal-background").style.display = "none"; } window.addEventListener("DOMContentLoaded", function() { var rows = document.querySelectorAll("table tr"); for (var i = 0; i < rows.length; i++) { rows[i].addEventListener("click", function() { showModal(this); }); } var modalBackground = document.getElementById("modal-background"); modalBackground.addEventListener("click", function(event) { if (event.target === modalBackground) { closeModal(); } }); }); </script> </head> <body> <div> <div class="tab" onclick="switchTab(0)">Tab 1</div> <div class="tab" onclick="switchTab(1)">Tab 2</div> <div class="tab" onclick="switchTab(2)">Tab 3</div> </div> <table id="table1"> <tr> <th>列1</th> <th>列2</th> <th>列3</th> <th>列4</th> </tr> <tr> <td>数据11</td> <td>数据22</td> <td>数据33</td> <td>数据44</td> </tr> <tr> <td>数据12</td> <td>数据22</td> <td>数据32</td> <td>数据42</td> </tr> <!-- 复制上面的行,修改数据即可 --> </table> <table id="table2" style="display:none;"> <tr> <th>列1</th> <th>列2</th> <th>列3</th> <th>列4</th> </tr> <tr> <td>数据13</td> <td>数据23</td> <td>数据33</td> <td>数据43</td> </tr> <tr> <td>数据13</td> <td>数据23</td> <td>数据33</td> <td>数据43</td> </tr> <tr> <td>数据13</td> <td>数据23</td> <td>数据33</td> <td>数据43</td> </tr> <!-- 复制上面的行,修改数据即可 --> </table> <table id="table3" style="display:none;"> <tr> <th>列1</th> <th>列2</th> <th>列3</th> <th>列4</th> </tr> <tr> <td>数据14</td> <td>数据24</td> <td>数据34</td> <td>数据44</td> </tr> <!-- 复制上面的行,修改数据即可 --> </table> <div id="modal" class="modal"> <div id="modal-content"></div> <span class="close-btn" onclick="closeModal()">×</span> </div> <div id="modal-background" class="modal-background"></div> </body> </html>
阅读剩余
版权声明:
作者:Derek
链接:https://derekxx.cn/241.html
文章版权归作者所有,未经允许请勿转载。
THE END