当整数变量i达到100时调整div大小的问题
解决变量i达到100时无法调整div大小的问题
我瞅了下你的代码,大概率是这几个小问题导致的,咱们一个个来捋:
1. 变量i的作用域没搞对
如果i是在按键事件的处理函数里面声明的,那每次按上键都会把i重置成初始值,永远攒不到100。你得把i放在函数外面,让它能保留住累加的状态,比如:
// 把i放在事件函数外面,确保每次按键都能累加 let i = 0; document.addEventListener('keydown', function(event) { switch (event.keyCode) { case 38: i++; const scoreEl = document.getElementById('score'); scoreEl.innerHTML = i; // 这里的逻辑没问题,i>99时会触发宽度调整 if (i > 99) { scoreEl.style.width = '700px'; } else { scoreEl.style.width = '500px'; } break; } });
2. 先确认i真的到100了
有时候咱们以为变量到了目标值,实际可能因为其他代码偷偷改了i。可以加个调试日志,看看每次按键后i的真实值:
i++; console.log('当前i的值:', i); // 加这句,控制台能看到实时数值 const scoreEl = document.getElementById('score'); // ... 剩下的代码不变
3. 检查CSS优先级冲突
如果你的#score元素在样式表里已经写了width,还加了!important,那行内的style.width会被覆盖。这时候可以改用setProperty强制设置优先级:
scoreEl.style.setProperty('width', '700px', 'important');
4. 确保元素能被正确获取
如果#score是动态生成的(比如通过JS加载的),那页面初始化时可能还找不到这个元素,导致后续操作失效。可以把事件绑定放在元素加载完成后,或者用事件委托的方式。
先从作用域问题查起,这是最常见的原因。要是还不行,看控制台的日志信息,基本就能定位到问题啦。
内容的提问来源于stack exchange,提问作者trill
相关产品推荐
相关产品推荐

