【问题标题】:javascript += opacity of div isn't addingjavascript += div 的不透明度未添加
【发布时间】:2025-11-25 03:55:02
【问题描述】:
function popupGrowStage3() {
if (popupContentContainer.style.opacity < 1) {
    popupContentContainer.style.opacity+= 0.01;
    setTimeout(popupGrowStage3, 1000 / 60);
    alert(popupContentContainer.style.opacity);
} else {
    isPopupShowing = 1;
}
}
popupGrowStage3();

上面的代码似乎并不是每次都给不透明度增加 0.01。警报一直说 0.01。为什么要这样做?

popupContentContainer.style.width = popup.style.width;
    popupContentContainer.style.height = popup.style.height;
    popupContentContainer.style.backgroundColor = "#111111";
    popupContentContainer.style.opacity = 0;
    popup.appendChild(popupContentContainer);

这段代码在那之前

【问题讨论】:

  • 只是我还是设置的间隔帖子消失了?

标签: javascript opacity


【解决方案1】:

popupContentContainer.style.opacity 的类型是字符串。因此,当您使用字符串执行+= 时,结果将是一个串联的字符串。

例如:

var a = '2';
a += 2; //results '22'

变化:

popupContentContainer.style.opacity+= 0.01;

收件人:

popupContentContainer.style.opacity = parseFloat(popupContentContainer.style.opacity) + 0.01;

【讨论】:

  • 是的,这行得通。为什么?警报显示数字,我用数字设置不透明度。 div 是否会自动将其转换为字符串或其他内容?是因为它是 css 样式吗?