1 回答
TA貢獻1856條經驗 獲得超5個贊
那么你需要使用let關鍵字而不是var關鍵字來聲明i循環內的變量以避免閉包,同樣在你的事件監聽.addEventListener("mouseover", function(i) {器中匿名函數不應該使用變量 i 在這種情況下它是事件對象而不是你可能期望的,所以它應該是唯一.addEventListener("mouseover", function() {的,并讓i循環使用,在這里我做了這個簡單的例子來證明,我正在使用我自己的 HTML 和 CSS,以及你的一些 JS,因為這才是最重要的
var circles = document.getElementsByClassName('circle');
function chartOuterDivScaleMax(i) {
circles[i].style.transform = "scale(1.25)";
}
function chartOuterDivScaleMin(i) {
circles[i].style.transform = "scale(1)";
}
function iterateScaleFunction() {
for(let i = 0; i < circles.length; i++ ) {
circles[i].addEventListener("mouseover", function() {chartOuterDivScaleMax(i)}, false);
circles[i].addEventListener("mouseout", function() {chartOuterDivScaleMin(i)}, false);
}
}
iterateScaleFunction();
* {
box-sizing: border-box;
}
#circles-container {
display: flex;
}
.circle-container {
width: 52px;
height: 52px;
padding: 5px;
border-radius: 50%;
border: 1px solid red;
}
.circle {
width: 40px;
height: 40px;
border-radius: 50%;
background-color: orange;
}
<div id="circles-container">
<div class="circle-container">
<div class="circle"></div>
</div>
<div class="circle-container">
<div class="circle"></div>
</div>
<div class="circle-container">
<div class="circle"></div>
</div>
<div class="circle-container">
<div class="circle"></div>
</div>
<div class="circle-container">
<div class="circle"></div>
</div>
</div>
或者你可以用一種簡單的方式在 CSS 中做同樣的事情
* {
box-sizing: border-box;
}
#circles-container {
display: flex;
}
.circle-container {
width: 52px;
height: 52px;
padding: 5px;
border-radius: 50%;
border: 1px solid red;
}
.circle {
width: 40px;
height: 40px;
border-radius: 50%;
background-color: orange;
}
.circle:hover {
transform: scale(1.25);
}
<div id="circles-container">
<div class="circle-container">
<div class="circle"></div>
</div>
<div class="circle-container">
<div class="circle"></div>
</div>
<div class="circle-container">
<div class="circle"></div>
</div>
<div class="circle-container">
<div class="circle"></div>
</div>
<div class="circle-container">
<div class="circle"></div>
</div>
</div>
添加回答
舉報
