我们有一个数字和一个拆分的数字,我们想要拆分的次数,所有拆分的div应该是(或加起来)100%的宽度,即拆分的div应该在单行上.我们也需要动态地做到这一点.请在这方面帮助我.

var split_button = document.querySelector(".btn");
split_button.addEventListener("click", myfunc);

function myfunc() {
  number = parseInt(document.querySelector("#number").value);
  split = parseInt(document.querySelector("#split").value);
  var displayDiv = document.getElementById("disp");
  displayDiv.innerHTML = "";
  if (split > number) {
    generateErrorMessage(
      "Please enter number of splits less than number itself!"
    );
  } else if (number > 100 || number < 1) {
    generateErrorMessage(
      "Please enter number greater than 0 and less than 101"
    );
  } else if (split == 0) {
    generateErrorMessage("Split can't be done null");
  } else {
    let n = split;
    for (var i = 0; i < split; i++) {
      if (number % n == 0) {
        var divWidth = number / n;
      } else {
        var divWidth = Math.floor(number / n) + 1;
      }

      let tag = document.createElement("div");
      tag.className = "fill";

      var randomcolor = getRandomColor();
      tag.style.backgroundColor = randomcolor;
      tag.style.width = divWidth + "%";
      tag.textContent = divWidth;
      displayDiv.appendChild(tag);
      number = number - divWidth;
      n = n - 1;
    }
  }
}

function getRandomColor() {
  var letters = "0123456789ABCDEF";
  var color = "#";
  for (var i = 0; i < 6; i++) {
    color += letters[Math.floor(Math.random() * 16)];
  }
  return color;
}

function generateErrorMessage(msg) {
  errdiv = document.querySelector(".err-div");
  errpara = document.createElement("p");
  errpara.textContent = msg;
  errdiv.appendChild(errpara);
  errdiv.classList.add("err-msgs");
  console.log(errdiv);
  setTimeout(() => {
    errdiv.innerHTML = "";
    errdiv.classList.remove("err-msgs");
  }, 5000);
}
.container {
    background-color: white;
    padding-top: 10px;
}

body {
    background-color: lightblue;
}

.num {
    margin-bottom: 10px;
}

button {
    margin-left: 10px;
}

.disp {
    background-color: whitesmoke;

}

.fill {
    display: inline-block;
    background-color: aqua;
    /* border: 2px solid black; */
    height: 100px;
    text-align: center;
    color: white;
    font-size: 50px;
    /* padding: 10px; */

}

.err-msgs {

    padding: 20px;
    background-color: pink;
}
 <div class="container my-5">
      <!-- <p>Sorry there was an error</p> -->
        <div class="err-div"></div>  
        <div class="form-group p-2">
          <label for="number" class="num">Enter a Number</label>
          <input type="number" class="form-control" id="number" />
        </div>
        <div class="form-group p-2">
          <label for="split" class="num"
            >Enter number of times you want to split</label
          >
          <input type="number" class="form-control" id="split" />
        </div>

        <button  class="btn btn-primary my-2">Split</button>
      

      <div id="disp"></div>
  </div>
Also same value div should take same amount of width.

推荐答案

不是将它们的百分比值设置为男性,而是将父组件设置为Flex,并给子组件Flex:1,然后它将自动调整宽度并做出响应.

Javascript相关问答推荐

同步功能在中间停止

在Phaser中查找哪个物体处于碰撞中

错误:找不到react-redux上下文值;请确保该组件包装在React原生Expo应用程序中的提供者中

事件错误:类型错误:无法读取未定义的属性(读取stopPropagation)

我不明白这个react 组件有什么问题

RxJS setTimeout操作符等效

有Angular 的material .未应用收件箱中的价值变化

是什么原因导致此Angular 16电影应用程序中因类型错误而不存在属性?

单击子元素时关闭父元素(JS)

如何使覆盖div与可水平滚动的父div相关?

未捕获错误:[]:getActivePinia()被调用,但没有活动Pinia.🍍""在调用app.use(pinia)之前,您是否try 使用store ?""

更改JSON中使用AJAX返回的图像的路径

如何从网站www.example.com获取表与Cheerio谷歌应用程序脚本

第二次更新文本输入字段后,Reaction崩溃

将异步回调转换为异步生成器模式

传递方法VS泛型对象VS事件特定对象

如何找到带有特定文本和测试ID的div?

Django导入问题,无法导入我的应用程序,但我已在设置中安装了它

顶点图使用组标签更新列之间的条宽

如何在Java脚本中并行运行for或任意循环的每次迭代