gpt4 book ai didi

javascript - bgcolor vs 背景颜色 vs backgroundColor

转载 作者:行者123 更新时间:2023-12-02 06:41:41 25 4
gpt4 key购买 nike

我正在尝试用 javascript 制作一个“频闪灯”,我在互联网上找到了一些可以为我做的代码……但他们使用了 bgcolor,我觉得我应该是正确的但是代码只有在我保留 bgcolor 时才有效...所以你知道我的意思这是原文:

<html><head>
<title>Strobe</title>

<script>

function toggleBgColor()
{
document.bgColor = document.bgColor == '#ffffff' ? '#000000' : '#ffffff';

setTimeout('toggleBgColor()', 70); //in milliseconds
}
</script>
</head>

<body onLoad='toggleBgColor();'>
</body></html>



这是我的改动:


<html><head>
<title>Strobe</title>

<script>

function toggleBgColor()
{
document.body.style.background-color = document.body.style.background-color == '#ffffff' ? '#000000' : '#ffffff';

setTimeout('toggleBgColor()', 70); //in milliseconds
}
</script>
</head>

<body onLoad='toggleBgColor();'>
</body></html>



我还尝试将 document.body.style.background-color 更改为 document.body.style.background 和 document.body.style.backgroundColor ...它们都不起作用...我做错了什么?

最佳答案

document.body.style.background-color 是一个无效的标识符 (好吧,从技术上讲它是一个有效的标识符 [document.body.style.background] ,后跟运算符 [-],后跟另一个有效标识符 [color],但你知道我的意思)。请改用 document.body.style.backgroundColor。如果其他条件正确,它确实有效。 Live example

您说过您已经尝试过了。我怀疑问题是您的代码在其他地方失败了。例如,您正在与 '#ffffff' 进行比较:

document.body.style.backgroundColor = document.body.style.backgroundColor == '#ffffff' ? '#000000' : '#ffffff';
// ^^^^^^^^^^^^

浏览器可能不会(很可能不会)以您用来分配颜色的相同格式向您报告。该值在某些浏览器中返回为 "white",在其他浏览器中返回为 rgb(255, 255, 255) 等。因此比较经常会失败,即使当背景色白色时。您必须处理这种复杂性,解析 rgb 并查找颜色名称等——或者像我上面的示例那样维护一个标志。


题外话:避免将字符串传递给setTimeout;相反,直接使用函数引用。在你的情况下:

setTimeout(toggleBgColor, 70); //in milliseconds

注意没有引号,也没有 ()(因为它们会调用函数;我们想传递它的引用,而不是它的返回值)。

如果传递参数(你不在那里,但只是为了完整性),你可以使用一个函数来做到这一点:

setTimeout(function() {
doSomething("foo", "bar");
}, 70);

关于javascript - bgcolor vs 背景颜色 vs backgroundColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6560541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com