js_practice_6.html 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. #data {
  8. border-collapse: collapse;
  9. }
  10. #data td, #data th {
  11. width: 120px;
  12. height: 40px;
  13. text-align: center;
  14. border: 1px solid black;
  15. }
  16. #buttons {
  17. margin: 10px 0;
  18. }
  19. #adv {
  20. width: 200px;
  21. height: 200px;
  22. position: absolute;
  23. top: 10px;
  24. right: 10px;
  25. background-color: blue;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <table id="data">
  31. <caption>数据统计表</caption>
  32. <thead>
  33. <tr>
  34. <th>姓名</th>
  35. <th>年龄</th>
  36. <th>性别</th>
  37. <th>身高</th>
  38. <th>体重</th>
  39. </tr>
  40. </thead>
  41. <tbody>
  42. <tr>
  43. <td>Item1</td>
  44. <td>Item2</td>
  45. <td>Item3</td>
  46. <td>Item4</td>
  47. <td>Item5</td>
  48. </tr>
  49. <tr>
  50. <td>Item1</td>
  51. <td>Item2</td>
  52. <td>Item3</td>
  53. <td>Item4</td>
  54. <td>Item5</td>
  55. </tr>
  56. <tr>
  57. <td>Item1</td>
  58. <td>Item2</td>
  59. <td>Item3</td>
  60. <td>Item4</td>
  61. <td>Item5</td>
  62. </tr>
  63. <tr>
  64. <td>Item1</td>
  65. <td>Item2</td>
  66. <td>Item3</td>
  67. <td>Item4</td>
  68. <td>Item5</td>
  69. </tr>
  70. <tr>
  71. <td>Item1</td>
  72. <td>Item2</td>
  73. <td>Item3</td>
  74. <td>Item4</td>
  75. <td>Item5</td>
  76. </tr>
  77. <tr>
  78. <td>Item1</td>
  79. <td>Item2</td>
  80. <td>Item3</td>
  81. <td>Item4</td>
  82. <td>Item5</td>
  83. </tr>
  84. </tbody>
  85. </table>
  86. <div id="buttons">
  87. <button id="pretty">隔行换色</button>
  88. <button id="clear">清除数据</button>
  89. <button id="remove">删除一行</button>
  90. <button id="hide">表格淡出</button>
  91. </div>
  92. <div id="adv"></div>
  93. <script>
  94. const pretty = document.querySelector('#pretty')
  95. pretty.addEventListener('click', (evt) => {
  96. let rows = document.querySelectorAll('#data>tbody>tr')
  97. rows.forEach((row, i) => {
  98. let color = (i % 2 == 0 ? 'lightgray' : 'lightseagreen')
  99. row.style.backgroundColor = color
  100. })
  101. })
  102. const clear = document.querySelector('#clear')
  103. clear.addEventListener('click', (evt) => {
  104. let cols = document.querySelectorAll('#data>tbody>tr>td')
  105. cols.forEach((col) => {
  106. col.innerHTML = ''
  107. })
  108. })
  109. const remove = document.querySelector('#remove')
  110. remove.addEventListener('click', (evt) => {
  111. let tbody = document.querySelector('#data>tbody')
  112. let lastRow = tbody.lastElementChild
  113. if (lastRow) {
  114. tbody.removeChild(lastRow)
  115. }
  116. })
  117. var opacity = 100
  118. var delta = -5
  119. const table = document.querySelector('#data')
  120. const hide = document.querySelector('#hide')
  121. hide.addEventListener('click', (evt) => {
  122. let button = evt.target
  123. setTimeout(function() {
  124. opacity += delta
  125. table.style.opacity = opacity / 100
  126. if (opacity == 0 || opacity == 100) {
  127. delta = -delta
  128. button.textContent = opacity == 0? '表格淡入' : '表格淡出'
  129. } else {
  130. setTimeout(arguments.callee, 50)
  131. }
  132. }, 50)
  133. })
  134. let adv = document.querySelector('#adv')
  135. adv.addEventListener('click', (evt) => {
  136. // 读取样式
  137. let currentStyle = document.defaultView.getComputedStyle(adv)
  138. let top = parseInt(currentStyle.top) + 5
  139. // 修改样式
  140. adv.style.top = top + 'px'
  141. let right = parseInt(currentStyle.right) + 5
  142. adv.style.right = right + 'px'
  143. })
  144. </script>
  145. </body>
  146. </html>