:::info 根据数据生成柱形图 :::

需求

需求: 用户输入四个季度的数据,可以生成柱形图
分析:
①:需要输入4次,所以可以把4个数据放到一个数组里面
 利用循环,弹出4次框,同时存到数组里面
②:遍历改数组,根据数据生成4个柱形图,渲染打印到页面中
 柱形图就是div盒子,设置宽度固定,高度是用户输入的数据
 div里面包含显示的数字和 第n季度

代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. }
  13. .box {
  14. display: flex;
  15. width: 700px;
  16. height: 300px;
  17. border-left: 1px solid pink;
  18. border-bottom: 1px solid pink;
  19. margin: 50px auto;
  20. justify-content: space-around;
  21. align-items: flex-end;
  22. text-align: center;
  23. }
  24. .box>div {
  25. display: flex;
  26. width: 50px;
  27. background-color: pink;
  28. flex-direction: column;
  29. justify-content: space-between;
  30. }
  31. .box div span {
  32. margin-top: -20px;
  33. }
  34. .box div h4 {
  35. margin-bottom: -35px;
  36. width: 70px;
  37. margin-left: -10px;
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <script>
  43. //1. 循环生成四个弹窗,来接收用户输入的四个季度的数据,并将四个季度的数据放到一个数组里面去
  44. let dataArr = []
  45. for (let i = 1; i <= 4; i++) {
  46. dataArr.push(+prompt(`请输入${i}季度的数据`))
  47. }
  48. // 父盒子的生成
  49. document.write('<div class="box">')
  50. //循环dataArr遍历数组,将获取的数据渲染到页面上去
  51. for (let j = 0; j < dataArr.length; j++) {
  52. document.write(`<div style="height: ${dataArr[j]}px;">
  53. <span>${dataArr[j]}</span>
  54. <h4>第${j+1}季度</h4>
  55. </div>`)
  56. }
  57. document.write('</div>')
  58. </script>
  59. </body>
  60. </html>

效果

Video_2022-07-15_095012.gif