我有一个12个月的日历。当用户点击我正在调用我的函数toggleZoom的月份时 $ monthNode.onclick = function(){toggleZoom(this)};
目前我使用这个JS凸轮控制变焦:
function toggleZoom(month) {
var zoomed = window.getComputedStyle(month).zIndex;
var m = document.getElementsByClassName("month");
for(var i = 0; i < m.length; i++)
{
m[i].style ='' ;
}
if (zoomed != 2) {
month.style = 'transform:scale(1.1,1.1); z-index:2';
}
}
是否有一种更干净的方式(可能是一行代码)将我所有的月份类重置为未缩放而不循环遍历所有12个?像document.getElementsByClassName(&#34; month&#34;).style =&#34;&#34;
答案 0 :(得分:0)
您可以使用map()
函数在一行中循环遍历数组而不创建for
循环,如下所示:m.map(function(mo){ mo.style = ''; });
function toggleZoom(month) {
var zoomed = window.getComputedStyle(month).zIndex;
var m = document.getElementsByClassName("month");
m.map(function(mo){ mo.style = ''; });
if (zoomed != 2) {
month.style = 'transform:scale(1.1,1.1); z-index:2';
}
}
&#13;
或者,使用ES6's arrow function:
function toggleZoom(month) {
var zoomed = window.getComputedStyle(month).zIndex;
var m = document.getElementsByClassName("month");
m.map(mo => mo.style = '');
if (zoomed != 2) {
month.style = 'transform:scale(1.1,1.1); z-index:2';
}
}
&#13;