作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组值,根据给定的计算,输出一个数字,该数字应该用作宽度(只是一个数字),以使某些框具有一定的宽度(和高度)。框的数量与给定值的数量相同。因此,如果有七个值,就会有七个框,这些框必须是我编写的第一个函数输出的宽度。
因此,calculateBoxWidth 的输出值 1 是框 1 的宽度,同一函数的输出值 2 是框 2 的宽度,依此类推。
我想知道什么是简单但干净的编码方法。我认为本质上我只是想迭代两个对象并将一个对象设置为在其相应位置中的另一个对象等于另一个对象。
这是我到目前为止的代码:
var values = [0, 2, 4, 8, 10, 12, 14];
/*
* Calculate the width
*/
function calculateBoxWidth(valuesArray) {
var boxWidths = new Array();
var maxNumber = Math.max.apply(null, valuesArray);
for (var i = 0; i < valuesArray.length; i++) {
var value = values[i];
var calculatedWidth = ( (value/maxNumber) * 70 ) + 30;
boxWidths.push(Math.round(calculatedWidth));
}
return boxWidths;
}
/*
* Set the width (and height)
*/
function setBoxDimensions() {
var theBox = document.getElementsByClassName('the-box');
var theWidths = calculateBoxWidth(values);
for (var i = 0; i < theBox.length; i++) {
// ??
}
for (var j = 0; j < theWidths.length; j++) {
// ??
}
}
最佳答案
我想你会问,给定n个html元素和n个宽度的集合,如何将第一个元素设置为第一个宽度,第二个元素设置为第二个宽度,等等。如果这就是你想要的,我建议迭代您的元素列表,并在某种程度上,如果您的宽度数组具有不同的长度,则使用后备宽度:
function setBoxDimensions() {
var theBox = document.getElementsByClassName('the-box');
var theWidths = calculateBoxWidth(values);
for (var i = 0; i < theBox.length; i++) {
// use a fallback of 0 if theWidths[i] is undefined
var widthStyle = '' + (theWidths[i] || 0) + 'px';
theBox.item(i).style.width = widthStyle;
}
}
如果您也想将高度设置为相同的值,则添加:
theBox.item(i).style.height = widthStyle;
在 for
循环内。
关于javascript - 迭代两个对象并在其相应位置将一个对象设置为等于另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46019477/
我在 Java 中遇到异常处理问题,这是我的代码。当我尝试运行此行时出现编译器错误:throw new MojException("Bledne dane");。错误是: exception MojE
我刚刚开始学习asp.net。在你们的支持下,我希望我能从这个论坛学到更多东西。 我的问题是, 我在 asp.net 页面中有一个 TabContainer1,因为每个选项卡面板中有多个类似 (60)
我是一名优秀的程序员,十分优秀!